为什么Wildfly 8.1.0最终返回java.lang.NoClassDefFoundError:当部署带有远程应用程序库的ejb模块时,但glassfish没有’;T
我试图创建一个简单的EJB远程客户端示例,但每次尝试部署EJB时,我都会得到为什么Wildfly 8.1.0最终返回java.lang.NoClassDefFoundError:当部署带有远程应用程序库的ejb模块时,但glassfish没有’;T,java,netbeans,jboss,ejb-3.1,wildfly-8,Java,Netbeans,Jboss,Ejb 3.1,Wildfly 8,我试图创建一个简单的EJB远程客户端示例,但每次尝试部署EJB时,我都会得到java.lang.NoClassDefFoundError: 远程Java库文件结构为: EJB模块文件结构为: TestBeanRemote.java package bean; import javax.ejb.Remote; @Remote public interface TestBeanRemote { String getName(String name); } java 包装豆 导入jav
java.lang.NoClassDefFoundError:
远程Java库文件结构为:
EJB模块文件结构为:
TestBeanRemote.java
package bean;
import javax.ejb.Remote;
@Remote
public interface TestBeanRemote {
String getName(String name);
}
java
包装豆
导入javax.ejb.Stateless
@无状态公共类TestBean实现TestBeanRemote{
@Override
public String getName(String name) {
return "Here is my " + name;
} }
问题:当我尝试在上部署TestEJBModule时,请获取以下日志:
警告[org.jboss.modules](MSC服务线程1-6)定义失败
在模块“deployment.TestEJBModule.jar:main”中的类bean.TestBean
服务模块加载程序:java.lang.LinkageError:链接失败
bean/TestBean(来自服务的模块“deployment.TestEJBModule.jar:main
模块加载器)
原因:java.lang.ClassNotFoundException:bean.TestBean远程
服务模块中的[Module“deployment.TestEJBModule.jar:main”
装载机]在
org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
[jboss modules.jar:1.3.3.Final]
原因:java.lang.LinkageError:链接bean/TestBean失败
(来自服务模块的模块“deployment.TestEJBModule.jar:main”)
装载机)在
org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:487)
[jboss modules.jar:1.3.3.Final]
原因:java.lang.NoClassDefFoundError:bean/TestBeanRemote
原因:java.lang.ClassNotFoundException:bean.TestBean远程
服务模块中的[Module“deployment.TestEJBModule.jar:main”
装载机]在
org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213)
[jboss modules.jar:1.3.3.Final]
当我尝试使用Glassfish 4部署相同的示例时,效果很好
NB:我正在使用netbeans 8.0.1
似乎有一个类似的示例,但没有多大帮助。提前感谢。我通过首先将TestRemoteInterface jar部署到服务器来解决此问题。然后我将其作为依赖项添加到项目manifest.mf中 例如:
Dependencies: deployment.TestRemoteInterface.jar
如果您正在使用maven,另一个选项是使用maven依赖项清单
<configuration>
<archive>
<manifestEntries>
<Dependencies>TestRemoteInterface.jar</Dependencies>
</manifestEntries>
</archive>
</configuration>
TestRemoteInterface.jar
您是否将TestRemoteInterface
和TestEJBModule
部署为两个独立的JAR?如果是这样,两个JAR都在独立的类加载器中,这就是为什么会出现NoClassDefFoundError。您是否考虑部署包含两个JAR的ear文件?
Caused by: java.lang.NoClassDefFoundError: bean/TestBeanRemote
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.8.0_05]
Dependencies: deployment.TestRemoteInterface.jar
<configuration>
<archive>
<manifestEntries>
<Dependencies>TestRemoteInterface.jar</Dependencies>
</manifestEntries>
</archive>
</configuration>