我需要在Websphere中创建一个启动类。该类出现在abc.jar中。并且abc.jar在服务器启动时需要log4j.jar。
对于上面的场景,我在websphere控制台的classpath中用abc.jar创建了启动类,并将log4j.jar保存在WAS的ext文件夹中。这适合我。 但问题是其他配置文件共享WAS的同一个ext文件夹,并且由于Log4j.jar而无法启动。 如果我将Log4j.jar保存在其他位置并将该位置保留在类路径中。启动课不会失败。请帮助我。
答案 0 :(得分:2)
如果您的应用程序使用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>
答案 1 :(得分:0)
我对WebSphere不是很熟悉,也许我不完全理解你的问题 - 但是如何使用web.xml中定义的启动servlet部署webapp?
这就是我的意思:
<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.jar,如果另一个log4j版本导致问题,你可以使用WebSphere类加载器设置,并在服务器启动期间调用你的类。