【发布时间】:2015-02-09 15:52:56
【问题描述】:
我正在将我的应用程序从 Glassfish 移植到 Wildfly 8.1。 该应用程序是一个maven-ejb-project,它依赖于一个maven-'java Application'-project,编译时都打包在一个jar文件中。
这是一个 maven 项目(mvn 版本是 3.0.5),Java 1.7,它是用 Netbeans 8.0.2 编写的。
我创建了一个 EJB-module ,我的可部署文件的名称是 ServerApp-ejb.jar 。这个项目有一个@Startup-bean 并从数据库中读取。
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-files和ear-files的推荐。
我的 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。
问候,英戈
【问题讨论】:
标签: jakarta-ee ejb wildfly