【问题标题】:Deploy a Java EE project as jar with Maven and perform the DI使用 Maven 将 Java EE 项目部署为 jar 并执行 DI
【发布时间】: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 注入。

我做错了什么?

【问题讨论】:

  • 你试过thisthis?
  • 好的,这修复了警告。但是代码正确吗?为什么返回那个警告?

标签: java maven jakarta-ee ejb


【解决方案1】:

根据我在评论中的示例,这是因为 ecrise 认为“该库存在于服务器上,并且将其与您的项目一起导出是不正确的”

我对你的代码不太了解,但似乎没问题。

【讨论】:

    【解决方案2】:

    如果这是一个 J2EE 应用程序,我希望目标是战争或耳朵。我认为 J2EE 容器不会理解 jar 部署。

    【讨论】:

      猜你喜欢
      • 2014-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-04
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多