Jakarta ee Wildfly 8.1,-不识别我的依赖项-但Glassfish识别

Jakarta ee Wildfly 8.1,-不识别我的依赖项-但Glassfish识别,jakarta-ee,ejb,wildfly,Jakarta Ee,Ejb,Wildfly,我正在将我的应用程序从Glassfish移植到Wildfly 8.1。 该应用程序是一个maven ejb项目,它依赖于一个maven-“java应用程序”-项目,在编译时这两个项目都打包在一个jar文件中 这是一个maven项目,mvn版本是3.0.5,Java 1.7,是用Netbeans 8.0.2编写的 我已经创建了一个EJB模块,可部署文件的名称是ServerApp-EJB.jar。这个项目有一个@startupbean并从数据库中读取数据 EJB模块依赖于我的“域服务”模块,它是一个

我正在将我的应用程序从Glassfish移植到Wildfly 8.1。 该应用程序是一个maven ejb项目,它依赖于一个maven-“java应用程序”-项目,在编译时这两个项目都打包在一个jar文件中

这是一个maven项目,mvn版本是3.0.5,Java 1.7,是用Netbeans 8.0.2编写的

我已经创建了一个EJB模块,可部署文件的名称是ServerApp-EJB.jar。这个项目有一个@startupbean并从数据库中读取数据

EJB模块依赖于我的“域服务”模块,它是一个jar->DomainService-2.0-SNAPSHOT.jar。此项目包含我的“实体”

在Glassfish中部署ejb-app.jar时:

我可以看到Glassfish使用位于我的.m2目录中的DomainService-2.0-SNAPSHOT.jar

按下“常规”的Glassfish选项卡,我可以看到以下内容:

“库”>/home/ingo/.m2/repository/se/server/tutorial/web/DomainService/2.0-SNAPSHOT/DomainService-2.0-SNAPSHOT.jar -Glassfish这样管理它的依赖关系似乎有些奇怪,但Glassfish显然就是这样做的

我知道Wildfly中的类加载方式与Glassfish中的不同

我看到了一些关于war文件和ear文件的建议

我的EJB在pom.xml中有以下几行

se.nrm.mediaserver

ServerApp ejb

1.0-快照

ejb

以及以下依赖项:

  <dependencies>

    <dependency>

        <groupId>javax</groupId>

        <artifactId>javaee-api</artifactId>

        <version>6.0</version>

        <scope>provided</scope>

    </dependency>

   <dependency>

        <groupId>se.server.tutorial.web</groupId>

        <artifactId>DomainService</artifactId>

        <version>2.0-SNAPSHOT</version>

        <type>jar</type>

    </dependency>

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>${junit.version}</version>

        <scope>test</scope>

    </dependency>

    <dependency>

        <groupId>log4j</groupId>

        <artifactId>log4j</artifactId>

        <version>${log4j.version}</version>

        <type>jar</type>

    </dependency>

</dependencies>
上面的依赖项列表中唯一找不到的文件是我自己的

如果有人能给我建议正确的做法,我宁愿不改变我的包装风格


至于ingo,Wildfly使用基于模块概念的类加载机制。必须在standalone.xml或META-INF/WEB-INF文件夹中的特定jboss-deployment-structure.xml中定义这些模块并声明依赖项,{user.home}/.m2/不是jboss模块的路径之一

也就是说,在wildfly中将接口声明部署为模块似乎不是一个合乎逻辑的想法

创建一个application-deployment.ear,并将application-ejb.jar作为一个依赖项添加到其中,这样就可以跨应用服务器、glassfish、weblogic和wildfly进行移植