Wildfly 8主机EJB 3.x应用程序问题

时间:2014-11-01 14:03:46

标签: java jboss ejb wildfly

我使用Wildfly 8,SDK 1.7和Intellij IDE并尝试制作基本的ejb服务器。

我制作了包含两个子模块的项目:interface和server。

接口:

package testing;
...
@Remote
public interface Test {
public void sayHi();
}

服务器:

package srv;
...
import testing.Test;

@Stateless
public class TestBean implements Test {

    @Override
    public void sayHi() 
    {
        System.out.println("Hi");
    }
}

两个模块的依赖关系为javax.ejb.jar,服务器1的依赖关系为jboss-client + interface。一切都很好。

所以,我试图将server:ejb神器部署到Wildfly中,但它没有成功:

ERROR [org.jboss.msc.service.fail] (MSC service thread 1-3) MSC000001: Failed to start service jboss.deployment.unit."server_ejb.jar".POST_MODULE: org.jboss.msc.service.StartException in service jboss.deployment.unit."server_ejb.jar".POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment "server_ejb.jar"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:166) [wildfly-server-8.1.0.Final.jar:8.1.0.Final]
...
Caused by: java.lang.LinkageError: Failed to link srv/TestBean (Module "deployment.server_ejb.jar:main" from Service Module Loader)
...
Caused by: java.lang.NoClassDefFoundError: testing/Test
at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_67]
at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [rt.jar:1.7.0_67]
at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:361) [jboss-modules.jar:1.3.3.Final]
at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:482) [jboss-modules.jar:1.3.3.Final]
... 19 more

怎么了?

1 个答案:

答案 0 :(得分:1)

EJB JAR包含一个或多个EJB,包括它们的接口定义,EJB使用的任何相关Java类,以及描述这些EJB的部署描述符。

鉴于此例外:

Caused by: java.lang.NoClassDefFoundError: testing/Test

server_ejb.jar不包括测试界面,您必须在部署中包含该界面。

我希望这有帮助。