我正在尝试创建将支持ejb bean模块化的Maven(ear)项目。我的意思是,buissnes对象应放在单独的jar文件中。像这样:
application.ear
|__ users.jar
|__ cars.jar
|__ phones.jar
|__ application-ejb.ejb
|__ application-web.war
每个jar都包含为战争提供数据的Entities,Facade和Service
users.jar
|__ User.class (@Entitiy)
|__ UserService.class (@Named, @RequestScoped)
|__ UserFacadeLocal.class (@Stateless, @Local, @PersistenceContext)
phones.jar
|__ Phone.class (@Entitiy)
|__ PhoneService.class (@Named, @RequestScoped)
|__ PhoneFacadeLocal.class (@Stateless, @Local, @PersistenceContext)
cars.jar
|__ Car.class (@Entitiy)
|__ CarService.class (@Named, @RequestScoped)
|__ CarFacadeLocal.class (@Stateless, @Local, @PersistenceContext)
现在我的问题是在某个行家阶段如何将这3个罐子包装到一个ejb中? (如果有可能当然以及如何做到这一点?),结果我将得到类似的东西:
application-ejb.ejb
|__ User.class (@Entitiy)
|__ UserService.class (@Named, @RequestScoped)
|__ UserFacadeLocal.class (@Stateless, @Local, @PersistenceContext)
|__ Phone.class (@Entitiy)
|__ PhoneService.class (@Named, @RequestScoped)
|__ PhoneFacadeLocal.class (@Stateless, @Local, @PersistenceContext)
|__ Car.class (@Entitiy)
|__ CarService.class (@Named, @RequestScoped)
|__ CarFacadeLocal.class (@Stateless, @Local, @PersistenceContext)
或在maven中仅使用依赖项有一些不同的方式
<dependency>
<groupId>org.application</groupId>
<artifactId>application-ejb</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.users</groupId>
<artifactId>users</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.cars</groupId>
<artifactId>cars</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.phones</groupId>
<artifactId>phones</artifactId>
<version>1.0</version>
</dependency>
有人可以帮助我解决问题吗?我将不胜感激
答案 0 :(得分:0)
您可以使用Maven EAR插件的 defaultLibBundleDir 配置将这些JAR放入EAR的/ lib目录中,从而实现“ Skinny WARs ”的概念:< / p>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.x</version>
<configuration>
<defaultLibBundleDir>lib</defaultLibBundleDir>
查看以下文章以了解更多详细信息: Creating Skinny WARs