2010-03-24 5 views
0

Мне нужно создать класс запуска в Websphere. Этот класс присутствует в abc.jar. А также abc.jar требует log4j.jar при запуске сервера.Стартовый класс в Websphere

Для вышеуказанного сценария я создал класс запуска с abc.jar в пути к классам в консоли websphere, и я сохранил log4j.jar в папке ext WAS. Это работает для меня. Но проблема в том, что другие профили используют одну и ту же внешнюю папку WAS и не могут запускаться из-за Log4j.jar. Если я сохраняю Log4j.jar в другом месте и сохраняю это местоположение в classpath. Класс запуска не будет терпеть неудачу. Пожалуйста, помогите мне.

ответ

0

Я не очень хорошо знаком с WebSphere и, возможно, не полностью понимаю вашу проблему, но как насчет развертывания webapp с сервлетами запуска, определенными в web.xml?

Вот что я имею в виду:

  • создать abc.war с abc.jar и log4j.jar копируется в abc.war/WEB-INF/Библиотека
  • определить свой класс запуска в 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.jar в одном месте, вы можете использовать WebSp здесь параметры classloader, если другая версия log4j вызывает проблемы, и ваш класс вызывается во время запуска сервера.

2

Если ваше приложение использует EJBs, то вы можете использовать специфическую особенность WAS с дескриптором IBM-EJB-банку-ext.xml, который включает в себя запуск на приложение-старт элемент:

<?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> 
+0

Этот параметр определяет, будет ли EJB запущен в контейнере при запуске модуля/приложения (то есть, будут ли метаданные для EJB обрабатываться немедленно или отложены до тех пор, пока EJB не будет использоваться). Он напрямую не коррелирует с видимым пользователем «стартовым классом». –

Смежные вопросы