有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Websphere中的java启动类

我需要在Websphere中创建一个启动类。这门课在abc上。罐子还有abc。jar需要log4j。服务器启动时的jar

对于上面的场景,我已经用abc创建了startup类。jar在websphere控制台的类路径中,我保存了log4j。WAS的ext文件夹中的jar。这对我有用。 但问题是,其他配置文件共享WAS的同一ext文件夹,并且由于Log4j而无法启动。罐子 如果我保持Log4j。jar并将该位置保留在类路径中。启动类不会失败。请帮帮我


共 (2) 个答案

  1. # 1 楼答案

    如果您的应用程序使用ejb,那么您可以将WAS的一个特殊功能与ibm-ejb-jar-ext.xml描述符一起使用,该描述符包括一个start at app start元素:

    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar-ext
        xmlns="http://websphere.ibm.com/xml/ns/javaee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-ext_1_1.xsd"
        version="1.1">
    
        <session name="TestBean">
            <start-at-app-start value="true"/>
        </session>
    </ejb-jar-ext>
    
  2. # 2 楼答案

    我对WebSphere不是很熟悉,也许我不完全理解您的问题——但部署一个web应用程序,并在web中定义一个启动servlet如何。xml

    我的意思是:

    • 创建一个abc。与美国广播公司开战。jar和log4j。jar复制到abc。war/WEB-INF/lib
    • 在abc中定义您的启动类。war/WEB-INF/WEB。xml格式如下:

    <web-app id="WebApp">
    <display-name>abc.war</display-name>
    <servlet> 
        <servlet-name>ABCStartupServlet</servlet-name>
        <display-name>ABCStartupServlet</display-name>
        <servlet-class>abc.ABCStartupServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
     </servlet>
     ...
    

    这样你就有了log4j。jar和abc。如果另一个log4j版本导致问题,并且在服务器启动期间调用了您的类,那么您可以在一个地方使用WebSphereClassLoader设置