尝试使用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>
答案 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>