Websphere无法通过eclipse hot-deploy加载EJB接口

时间:2015-08-12 14:28:54

标签: eclipse maven ejb websphere

尝试使用maven撰写ear,并使用eclipse将其部署到WebSphere AS。我的耳朵有下一个结构:

test-ejb-ear.ear
|
+-test-ejb.jar
|
+lib
-|
-+-test-ejb-interface.jar

使用管理控制台部署它时,它可以正常工作。但是,当我使用eclipse热部署时,它会生成下一个异常

CWMDF0015E: The class loader cannot load the ru.test.EjbInterface on ru.test.EjbInterfaceImpl Enterprise JavaBeans (EJB) file

我该怎么办?将Eclipse Mars与WAS 8.5.5.5一起使用。

test-ejb的ejb-plugin

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-ejb-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <ejbVersion>3.1</ejbVersion>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

test-ejb-ear的ear-plugin:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <defaultLibBundleDir>lib/</defaultLibBundleDir>
                    <skinnyWars>true</skinnyWars>
                    <version>6</version>
                    <modules>
                        <ejbModule>
                            <groupId>ru.test.ejb</groupId>
                            <artifactId>test-ejb</artifactId>
                        </ejbModule>
                    </modules>
                </configuration>
            </plugin>
        </plugins>
    </build>

1 个答案:

答案 0 :(得分:0)

通过将maven-ear-plugin的版本更改为2.10并将defaultLibBundleDir更改为'lib'来解决

<build>
        <plugins>
            <plugin>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.10</version>
                <configuration>
                    <defaultLibBundleDir>lib</defaultLibBundleDir>
                    <skinnyWars>true</skinnyWars>
                    <version>6</version>
                    <modules>
                        <ejbModule>
                            <groupId>ru.test.ejb</groupId>
                            <artifactId>test-ejb</artifactId>
                        </ejbModule>
                    </modules>
                </configuration>
            </plugin>
        </plugins>
    </build>