【发布时间】:2014-07-14 23:51:25
【问题描述】:
我刚刚开发了一个示例 Java EE 7 应用程序。 代码如下:
@Stateless
@LocalBean
public class Foo {
@Inject
private Boo boo; // Internal resource
@Asynchronous
public void doFoo(Collection<Object> c) {
boo.doSomething(c);
}
}
为了将项目部署为 jar 文件,我使用以下 Maven 配置:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sample</groupId>
<artifactId>ejb-foo</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>ejb-foo</finalName>
</build>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
</project>
不幸的是,Maven 向我返回了这个警告:
Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER will not be exported or published. Runtime ClassNotFoundExceptions may result. ejb-foo P/ejb-foo Classpath Dependency Validator Message
我该如何解决这个错误?
注意:
想法是将jar 导入另一个Java 项目,然后将Foo 类实例化为EJB:
import myjavaeeproject.Foo;
public OtherClass {
@EJB
private Foo foo;
public void doMagic(List<String> list) {
foo.doFoo(list);
}
}
更新:
我已经修复了here所示的错误。
当我在 JBoss 上部署(作为war)目标项目(实现OtherClass,注释为WebServlet)时,出现错误:
POST_MODULE: JBAS018733: Failed to process phase POST_MODULE of deployment
这取决于 EJB 注入。
我做错了什么?
【问题讨论】:
标签: java maven jakarta-ee ejb