2014-12-01 373 views
0

我工作了部署到WebLogic 12C(v12.1.1)服務器,我遇到了此異常,當我嘗試重新部署和更新的耳朵:的weblogic.Deployer未能重新部署應用

Task 5 initiated: [Deployer:149026]deploy application wjade [Version=2.0-SNAPSHOT-20141201135918] on AdminServer. 
Task 5 failed: [Deployer:149026]deploy application wjade [Version=2.0-SNAPSHOT-20141201135918] on AdminServer. 
Target state: redeploy failed on Server AdminServer 
java.lang.NullPointerException 
java.lang.NullPointerException 
    at weblogic.ejb.container.timer.EJBTimerManager.undeploy(EJBTimerManager.java:386) 
    at weblogic.ejb.container.manager.BaseEJBManager.undeployTimerManager(BaseEJBManager.java:429) 
    at weblogic.ejb.container.manager.BaseEJBManager.undeploy(BaseEJBManager.java:411) 
    at weblogic.ejb.container.manager.StatelessManager.undeploy(StatelessManager.java:384) 
    at weblogic.ejb.container.deployer.EJBDeployer.deactivate(EJBDeployer.java:1489) 
    at weblogic.ejb.container.deployer.EJBModule.doDeactivate(EJBModule.java:1020) 
    at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:477) 
    at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:192) 
    at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:187) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35) 
    at weblogic.application.internal.flow.ModuleStateDriver.activate(ModuleStateDriver.java:58) 
    at weblogic.application.internal.flow.ScopedModuleDriver.activate(ScopedModuleDriver.java:206) 
    at weblogic.application.internal.ExtensibleModuleWrapper.activate(ExtensibleModuleWrapper.java:97) 
    at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:114) 
    at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:192) 
    at weblogic.application.internal.flow.ModuleStateDriver$2.next(ModuleStateDriver.java:187) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35) 
    at weblogic.application.internal.flow.ModuleStateDriver.activate(ModuleStateDriver.java:58) 
    at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:145) 
    at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:729) 
    at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:35) 
    at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:258) 
    at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:61) 
    at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:165) 
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:582) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:148) 
    at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:114) 
    at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:335) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253) 
    at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440) 
    at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13) 
    at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68) 
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545) 
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) 
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) 

如果我刪除從耳朵中找到的一個TimedObject,它將重新部署。這是使用2.x EJB的舊代碼。這是一個在更新版本的Weblogic中已經解決的已知問題嗎?我還沒有找到這個問題的文件。

在此先感謝!

新信息:

原來EJB代碼是根據項目的POM文件中的行家,編譯器插件ejbVersion編譯爲3.1。我試圖使用@Schedule註釋來查看是否使計時器成爲自動計時器會影響重新部署,但到目前爲止沒有運氣......與上面提到的相同的例外情況。

這裏是我正在做我的初步部署:

的java的weblogic.Deployer -adminurl T3://本地主機:7001 -username XXXXXXXX -password XXXXXXXX -deploy -name wjade -source的/ tmp/onesystem- APP-2.0-快照20141202152000.ear

這裏是我如何重建應用程序和更新耳朵的版本,在它的清單後做我的重新部署:

的java的weblogic.Deployer -adminurl T3://本地主機:7001 -username xxxxxxxx -password xxxxxxxx -redeploy -name wjade -source /tmp/onesystem-app-2.0-SNAPSHOT-20141202152232.ear

如果我使用weblogic.Deployer的-listapps選項,則會看到兩個應用程序,其中早期版本顯示爲活動狀態,更新版本爲非活動狀態。我可以毫無錯誤地取消部署或啓用活動或非活動應用程序。在未啓用的和未啓用的版本中,我可以部署更新的應用程序而不出錯。只有在重新部署期間拋出異常。

這種重新部署適用於沒有EJB定時器的其他應用程序,與我的問題歸檔中一樣。

另一個更新:

如所建議的,我測試使用-source選項像這樣的值相同:

的java的weblogic.Deployer -adminurl T3://本地主機:7001 -username XXXXXXXX -password XXXXXXXX -deploy -name wjade -source /tmp/onesystem-app-2.0-SNAPSHOT.ear

重建應用程序,並更新了耳朵的版本,在它的清單:

的java的weblogic.Deployer -adminurl T3:// localhost:7001 -username xxxxxxxx -passwo rd xxxxxxxx -redeploy -name wjade -source /tmp/onesystem-app-2.0-SNAPSHOT.ear

失敗w /與EJB定時器相同的異常,並且適用於不帶EJB定時器的應用程序。

+0

該錯誤不會在第一次部署時發生?或者您正在使用全新版本的EJB進行更新?問題很混亂。您是否按照以下示例進行操作:https://blogs.oracle.com/jamesbayer/entry/a_simple_job_scheduler_example – 2014-12-02 19:02:18

+0

第一次部署時不會發生該錯誤。該方案如下所示:構建耳朵並部署,構建新版本並重新部署。重新部署失敗,出現上述例外情況。 – user1052313 2014-12-02 21:18:15

+0

你如何運行重新部署?通過管理控制檯?你是否從'weblogic.deployer'發佈'update'?如果您嘗試從管理控制檯中停止或刪除原始.ear,它是否也會在日誌中引發錯誤(無需重新部署)? – 2014-12-02 21:32:06

回答

0

沒有那麼多的根本原因的答案,但我的特定使用情況下,可行的解決辦法...

問題EAR只包含一個EJB,它實現TimedObject的。我刪除了EJB的Timer元素,並修改了一個現有的類,該類提供了一個用於激活/停用定時對象的主類。我修改了類以簡單地執行先前定時的對象的重要處理方法。我可以安排從cron調用它。

相關問題