2010-09-23 56 views
2

Weblogic上部署10.3 web服務我有實現JWS web服務,這樣的EJB項目:ClassNotFoundException的使用Hibernate

​​

我部署和使用簡單的EAR項目來測試這完全在WebLogic 10.3。現在我需要在我的項目中使用Hibernate,所以從以前的經驗,我知道我必須使用Antrl從休眠模式,而不是從容器中,所以我創建的weblogic-application.xml中EAR項目:

<?xml version="1.0" encoding="UTF-8"?> 
<wls:weblogic-application ...> 
<wls:prefer-application-packages> 
    <wls:package-name>antlr.*</wls:package-name> 
</wls:prefer-application-packages> 
</wls:weblogic-application> 

現在當我部署EAR時出現此錯誤:

Unable to deploy EJB: WebServiceTestImpl from test-1.0.0-SNAPSHOT.jar: 

***** ASSERTION FAILED ***** 


at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:467) 
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199) 
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:507) 
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41) 
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:149) 
Truncated. see log file for complete stacktrace 

Caused By: java.lang.ClassNotFoundException: test.WebServiceTestImpl_zd33dy_WSOImpl 
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:280) 
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:253) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:177) 
Truncated. see log file for complete stacktrace 

我該如何解決這個問題?如果我沒有把Antlr放在wls:prefer-application-packages中,Hibernate將不起作用,並且如果我把它放到網上我不能部署...

回答

6

Weblogic以某種方式保留預編譯的EJB版本,即使您執行了新的/更新部署。

這適用於我的wls 10.3.5: 在您的域的服務器目錄(例如在我的情況/ home/myUser/apps/bea/domains/myDomain/servers/AdminServer)中有一個子文件夾「緩存/ EJBCompilerCache」。停止您的weblogic實例並刪除此子文件夾的內容。重新啓動weblogic,一切都會正常工作:-)

+0

好吧,既然解決了別人的問題,我接受了這個老問題的答案;) – Vinicius 2016-11-30 15:52:57

0

我有這個問題部署會話bean,然後嘗試轉換它到網絡服務。 WebLogic似乎以某種方式緩存會話bean。

有幾種解決方案:
- 重命名slsb。
- 評論@Stateless和@Remote註釋,部署應用程序,取消註釋註釋,重新部署。
- Bounce WebLogic。

+1

我沒有運氣......甚至從頭開始構建一個新的web服務導致這個問題。 – Vinicius 2011-01-05 14:30:38

1

我不確定這是否是同一個錯誤,但是在Weblogic 10.3.0-2中存在一個已知的錯誤,當在JavWS中使用EJB v 2.x時會導致問題。但是,當我在Weblogic 10.3.1的EJB v 3.0上放置@WebService註釋時,我遇到了幾乎相同的錯誤。錯誤是加載看起來像Weblogic創建的所謂本地存根,以及它發生在Weblogic 10.3.0,10.3.1,10.3.2和10.3.3上。 (是的,我真的已經部署了它們)

+0

看來,問題與本地存根完全相同:(我唯一找到的解決方案是創建一個不依賴於Hibernate的WS,WS實際上將某些東西放在JMS隊列上,這些JMS隊列將由另一個使用Hibernate的項目處理 – Vinicius 2011-01-05 14:33:27

相關問題