2012-02-23 1 views
0

Мне приходилось запускать простую периодическую задачу на сервере, когда работает только сервер weblogic 8.1, поэтому требование - запустить эту задачу в weblogic.Weblogic 8.1 - простейшее возможное ухо - непонятные сообщения об ошибках

Я начинаю с создания простейшего возможного уха, которое будет запускать один класс. Я нашел в других проектах призывания класса запуска в WebLogic-application.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE weblogic-application 
      PUBLIC "-//BEA Systems, Inc.//DTD WebLogic Application 8.1.0//EN" 
      "http://www.bea.com/servers/wls810/dtd/weblogic-application_2_0.dtd"> 

<weblogic-application> 
    <startup> 
     <startup-class>myStartupClass</startup-class> 
     <startup-uri>my-ejb.jar</startup-uri> 
    </startup> 
</weblogic-application> 

Как я понял, код Java должен находиться в отдельном проекте EJB, поэтому я создал проект, содержит только myStartupClass и добавляет его как зависимость maven типа ejb. Я строю ухо с помощью Maven-ухо-плагин:

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-ear-plugin</artifactId> 
      <configuration> 
       <defaultLibBundleDir>lib</defaultLibBundleDir> 
      </configuration> 
     </plugin> 

Наконец, ухо построен и я развернув его, ни с чем говорить сообщение:

[Deployer:149233]An unexpected error was encountered during the deployment process. 

    [Deployer:149033]preparing application finder-ear-1 on myserver 
    [Deployer:149033]failed application finder-ear-1 on myserver 
    [Deployer:149034]An exception occurred for task [Deployer:149026]Deploy application finder-ear-1 on myserver.: [Deployer:149233]An unexpected error was encountered during the deployment process.. 

Я проверил журналы найти какие-то детали, но к сожалению, они не дают мне никаких намеков, что WebLogic хочет от меня:

####<2012-02-23 13:41:00 GMT> <Warning> <DRS> <PA-STK-074> <myserver> <ExecuteThread: '3' for queue: 'weblogic.kernel.System'> <<WLS Kernel>> <> <BEA-002506> <The current version 2 for DataIdentifier DataIdentifierID: 1 does not match with incoming version 6 for a one-phase update.> 
####<2012-02-23 13:41:00 GMT> <Warning> <Deployer> <PA-STK-074> <myserver> <ExecuteThread: '3' for queue: 'weblogic.kernel.System'> <<WLS Kernel>> <> <BEA-149004> <Failures were detected while initiating Deploy task for application finder-ear-1.> 
####<2012-02-23 13:41:00 GMT> <Error> <Deployer> <PA-STK-074> <myserver> <ExecuteThread: '3' for queue: 'weblogic.kernel.System'> <<WLS Kernel>> <> <BEA-149201> <Failed to complete the deployment task with ID 4 for the application finder-ear-1. 
java.lang.Throwable: 
    at weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare()V(SlaveDeployer.java:2413) 
    at weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(Lweblogic/management/deploy/OamVersion;Lweblogic/management/runtime/DeploymentTaskRuntimeMBean;Z)V(SlaveDeployer.java:883) 
    at weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(Lweblogic/management/deploy/OamDelta;Lweblogic/management/deploy/OamVersion;ZLjava/lang/StringBuffer;)Z(SlaveDeployer.java:591) 
    at weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(Ljava/util/ArrayList;Z)V(SlaveDeployer.java:500) 
    at weblogic.drs.internal.SlaveCallbackHandler$1.execute(Lweblogic/kernel/ExecuteThread;)V(SlaveCallbackHandler.java:25) 
    at weblogic.kernel.ExecuteThread.execute(Lweblogic/kernel/ExecuteRequest;)V(ExecuteThread.java:224) 
    at weblogic.kernel.ExecuteThread.run()V(ExecuteThread.java:183) 
    at java.lang.Thread.startThreadFromVM(Ljava/lang/Thread;)V(Unknown Source) 
> 

не могли бы вы дать мне намек, что я делаю не так, и с чего начать? Я попытался найти учебник для случая, подобного моему (без веб-приложения, без удаленных служб EJB, только простая периодическая задача, сборка с maven), но я не мог найти ничего подходящего ... Любые подсказки были бы оценены.

ответ

1

Я думаю, что, поскольку цель класса запуска должна быть выполнена ДО ТОГО, пока не развернут определенный EAR, вы должны иметь класс OUTSIDE EAR-файла. Итак, что вы можете попробовать - оставьте все это в файле weblogic-application.xml, но упакуйте свой класс запуска в стандартный файл jar, который вы развертываете в директории пути для веб-логики (% WL_HOME% \ server \ lib)

+0

В другом проекте вызывается класс из EAR, и он выполняет первоначальную настройку. Однако, возможно, я злоупотребляю этой функцией, и я должен сделать что-то еще ... но что? –

+0

Ну, но вы уверены, что класс THAT (тот, который работает, из другого проекта) также не развернут в JAR в classpath WebLo? –

+0

Во всяком случае, я не эксперт WebLo, но если вы хотите иметь класс внутри вашего проекта, который вызывается при развертывании проекта, почему бы не сделать простой ванильный javax.servlet.ServletContextListener? –