Wildfly 8.1, - 不承认我的依赖 - 但Glassfish确实
我正在将我的应用程序从Glassfish移植到Wildfly 8.1。 应用程序是一个maven-ejb项目,它依赖于一个maven-'java Application'-project,它们都在编译时打包在一个jar文件中。Wildfly 8.1, - 不承认我的依赖 - 但Glassfish确实
这是一个maven项目(mvn版本是3.0.5),Java 1.7,它是用Netbeans 8.0.2编写的。
我已经创建了一个EJB模块,我的可部署文件的名称是ServerApp-ejb.jar。这个项目有一个@ Startup-bean,并从数据库读取数据。
EJB模块依赖于我的'Domain-service'模块,它是一个jar - > DomainService-2.0-SNAPSHOT.jar。这个项目包含了我的'entites'。
当我部署我我的ejb-app.jar在Glassfish的:
我可以看到Glassfish的使用的DomainService-2.0-SNAPSHOT.jar位于在我的.m2目录。
按下的 '常规' 我可以看到下面的Glassfish的标签:
'图书馆'> /home/ingo/.m2/repository/se/server/tutorial/web/DomainService/2.0-SNAPSHOT/ DomainService-2.0-SNAPSHOT.jar - Glassfish像这样管理它的依赖关系似乎很奇怪,但这是glassfish在外观上的表现。
据我所知,类加载在Wildfly中完成的方式与在Glassfish中完成的方式不同。
我已经看到一些关于战争文件和耳朵文件的建议。
我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>
上面的依赖项列表中唯一没有找到的文件是我自己的。
任何人都可以建议我做正确的事情,我宁愿不改变我的包装风格ejb。
问候,ingo
Wildfly使用基于模块概念的类加载机制。必须定义它们的模块,并且在META-INF/WEB-INF文件夹中的standalone.xml或特定的jboss-deployment-structure.xml中声明依赖项,并且{user.home} /。m2 /不是jboss模块的路径。
这就是说,将你的接口声明作为模块在wildfly中部署并不像是一个合乎逻辑的想法。
创建一个application-deployment.ear,并添加applcation-ejb.jar作为它的依赖项,这将在应用程序服务器,glassfish,weblogic,wildfly中移植。