Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Wildfly 8.1.0最终返回java.lang.NoClassDefFoundError:当部署带有远程应用程序库的ejb模块时,但glassfish没有’;T_Java_Netbeans_Jboss_Ejb 3.1_Wildfly 8 - Fatal编程技术网

为什么Wildfly 8.1.0最终返回java.lang.NoClassDefFoundError:当部署带有远程应用程序库的ejb模块时,但glassfish没有’;T

为什么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

我试图创建一个简单的EJB远程客户端示例,但每次尝试部署EJB时,我都会得到
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>