簡體   English   中英

為什么在使用遠程應用程序庫部署ejb模塊時,Wildfly 8.1.0最終返回java.lang.NoClassDefFoundError:,但是glassfish沒有?

[英]Why Wildfly 8.1.0 final return java.lang.NoClassDefFoundError: when deploying ejb module with a remote application library but glassfish doesn’t?

我試圖創建一個簡單的EJB遠程客戶端示例,但是在嘗試部署EJB時,我總是得到java.lang.NoClassDefFoundError:

遠程Java庫文件結構為:

 > TestRemoteInterface --Source Package -- bean --TestBeanRemote.java -- Libraries -- Java EE 6 API Library --JDK 1.8 

EJB模塊文件結構為:

 > TestEJBModule --Source Package -- bean --TestBean.java -- Libraries -- TestRemoteInterface – dist/TestRemoteInterface -- Java EE 6 API Library -- JDK 1.8 

TestBeanRemote.java

package bean;
import javax.ejb.Remote;

@Remote
public interface TestBeanRemote {

    String getName(String name);

}

TestBean的.java

包裝豆;

導入javax.ejb.Stateless;

@Stateless公共類TestBean實現了TestBeanRemote {

 @Override public String getName(String name) { return "Here is my " + name; } } 

問題:當我嘗試部署TestEJBModule時,獲取以下日志:

WARN [org.jboss.modules](MSC服務線程1-6)無法從服務模塊加載程序中的模塊“ deployment.TestEJBModule.jar:main”中定義類bean.TestBean:java.lang.LinkageError:無法鏈接bean / TestBean(來自服務模塊加載程序的模塊“ deployment.TestEJBModule.jar:main”)

....

Caused by: java.lang.NoClassDefFoundError: bean/TestBeanRemote
    at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_05]

....

由以下原因引起:java.lang.ClassNotFoundException:bean.TestBeanRemote來自org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)的[Service Module Loader的模塊“ deployment.TestEJBModule.jar:main”,來自Service Module Loader] .jar:1.3.3。最終版]

...

原因:java.lang.LinkageError:無法在org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487)處鏈接bean / TestBean(服務模塊加載程序中的模塊“ deployment.TestEJBModule.jar:main”)。[jboss -modules.jar:1.3.3.Final] .....

造成原因:java.lang.NoClassDefFoundError:bean / TestBeanRemote

.....

由以下原因引起:java.lang.ClassNotFoundException:bean.TestBeanRemote來自org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)的[Service Module Loader的模塊“ deployment.TestEJBModule.jar:main”,來自Service Module Loader] .jar:1.3.3。最終版]

當我嘗試使用Glassfish 4部署相同的示例時,它工作正常。

注意:我正在使用netbeans 8.0.1

似乎有一個類似的線程,但並沒有太大幫助。 先感謝您。

我通過首先將TestRemoteInterface jar部署到服務器來解決了這個問題。 然后,將其作為依賴項添加到項目manifest.mf中。

例:

Dependencies: deployment.TestRemoteInterface.jar

如果您正在使用maven,則另一個選擇是use maven依賴清單

<configuration>
   <archive>
      <manifestEntries>
         <Dependencies>TestRemoteInterface.jar</Dependencies>
      </manifestEntries>
   </archive>
</configuration>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM