![](/img/trans.png)
[英]java.lang.NoClassDefFoundError when deploying war on GlassFish/Payara
[英]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.