无法在EJB中添加Maven依赖关系-Eclipse,Websphere,Maven

时间:2018-08-23 08:15:14

标签: maven java-ee websphere ejb-3.0 ibm-rational

我将简要说明情况。

我需要维护一个应用程序,并将其部署在Websphere上,该应用程序包含两个部分。演示和业务。 我已经成功地简化了仅包含战争的演示文稿部分,并且该部分现在已部署在Websphere上。 但是,自从2天开始部署业务部分以来,我现在遇到问题。事实是我在打包ejb-impl,ejb-client和ear时遇到麻烦。确实,当我尝试部署业务部分时,Websphere出现了一个例外,因为ejb-impl找不到接口而拒绝启动服务器

我正在尝试重现提取时在EAR中打包的可运行的非Mavenise开发架构:

- META-INF
    - application.xml
    - MANIFEST
- lib 
    - dom4j
    - jaxen
    - ODApi
- EJB3 (implementation)
- EJB3Client (interfaces)
- Common (needed module)
- ODemand (needed module)

如果我提取EJB,则具有以下层次结构:

- com
- META-INF
    - ejb-jar
    - ibm-ejb-jar-bnd
- EJB3Client (jar)

正如您所能做到的,正确地添加了EJB3Client jar。

现在,如果我提取自己无法正常工作的EAR,则结果如下:

- META-INF
    - maven
    - application
    - MANIFEST
- EJB3 (jar)
- EBJ3Client (jar)
- Common (jar)
- ODemand (jar)
- ... (tons of libraries)

经过一些测试和分析,我认为问题来自此EJB(实现)模块... 确实,我已经尝试向项目添加war模块,没问题,战争的依赖关系没有添加到EAR的根目录中,但是如果我向EJB的依赖关系中添加了诸如Mockito的依赖关系,它也会出现在提取后取根。

这就是为什么我认为问题出在包装上,并且当我尝试在EJB模块中指定时,在部署程序集中将Maven依赖项添加到WEB-INF / lib中时,这是不可能的,因为如果我单击

DeploymentAssembly -> Add -> Java Build Path Entries

没有任何内容(没有maven依赖项)... 我对EJB一无所知,而且我对Maven还是陌生的,所以我问你们是否有成功实现此部署的想法。

要多提供一些东西(不能提供太多,我已经删除了私人信息):

EAR业务的pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <packaging>ear</packaging>
    <artifactId>BusinessEAR</artifactId>

    <parent>
        <artifactId>BusinessParent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <artifactId>EJB3</artifactId>
            <version>1.0.0-SNAPSHOT</version>
            <type>ejb</type>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ear-plugin</artifactId>
                <configuration>
                    <modules>
                        <ejbModule>
                            <artifactId>EJB</artifactId>
                        </ejbModule>
                    </modules>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>cp1252</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

EJB的pom.xml:

<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>
    <artifactId>EJB3</artifactId>
    <packaging>ejb</packaging>

    <parent>
        <artifactId>BusinessParent</artifactId>
        <version>1.0.0-SNAPSHOT</version>
    </parent>

    <dependencies>

        <dependency>
            <artifactId>EJB3Client</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <artifactId>Common</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <artifactId>ODemand</artifactId>
            <version>1.0.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>ejb-api</artifactId>
            <version>3.0</version>
        </dependency>

        <dependency>
            <groupId>javax.ejb</groupId>
            <artifactId>javax.ejb-api</artifactId>
            <version>3.2</version>
        </dependency>

        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
            <version>1.6.1</version>
        </dependency>

        <dependency>
            <groupId>jaxen</groupId>
            <artifactId>jaxen</artifactId>
            <version>1.1.1</version>
        </dependency>

        <dependency>
            <groupId>ODApi</groupId>
            <artifactId>ODApi</artifactId>
            <version>1.5.0</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>cp1252</encoding>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <ejbVersion>3.1</ejbVersion>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

我真的不能提供更多信息,因为该应用程序和源代码是私人抱歉。

最后,我尝试使用表示部分的层次结构成为ISO,但我仍然真的认为EJB部分是问题

预先感谢

0 个答案:

没有答案