2012-02-23 3 views
0

weblogic 8.1 서버 만 실행될 때 서버에서 간단한 정기 작업을 실행해야하므로 weblogic에서 해당 작업을 실행해야합니다.Weblogic 8.1 - 가장 단순한 가능한 귀 - 이해할 수없는 오류 메시지

나는 가능한 가장 단순한 귀를 만드는 것부터 시작하여 하나의 클래스를 실행합니다. 나는 웹 로직-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> 

내가 이해 한 것처럼, 자바 코드는 별도의 EJB 프로젝트에 있어야합니다, 그래서 프로젝트를 만든 그 myStartupClass 만 포함하고 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.. 

을 몇 가지 세부 사항을 찾을 수 있지만, unfortunatelly 그들은 나에게 어떤 웹 로직 나에게서 원하는 힌트 줄 없습니다 :

####<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이 배포되기 전에 시작 클래스의 목적이 실행되기 때문에 EAR 파일 외부에 클래스가 있어야한다고 생각합니다. 따라서 시도해 볼 수있는 것은 weblogic-application.xml 파일에 모든 것을 남기고 Weblogic의 클래스 경로 dir (% WL_HOME % \ server \ lib)에 배치하는 표준 jar 파일에 시작 클래스를 패키지하는 것입니다.

+0

다른 프로젝트에서는 EAR을 사용하는 클래스가 호출되고 초기 구성이 수행됩니다. 그러나이 기능을 오용하고 다른 작업을해야 할 수도 있습니다 ...하지만 무엇을 할 수 있습니까? –

+0

음,하지만 그 클래스 (다른 프로젝트에서 작동하는 클래스)가 WebLo 클래스 패스의 JAR에도 배포되지 않았습니까? –

+0

필자는 WebLo 전문가는 아니지만 프로젝트가 배포 될 때 호출되는 프로젝트 내부 클래스를 원할 경우 일반 바닐라 javax.servlet.ServletContextListener를 만드는 것이 어떻습니까? –