gpt4 book ai didi

java - Maven EJB 打包依赖库

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:04 32 4
gpt4 key购买 nike

我面临一个问题,即如何使用简单的 WAR 和 EJB3 模块为 JBoss7 应用服务器正确打包我的企业 (EAR) 应用程序。问题是,EJB 模块正在使用 XML-RPC 库(来自 Apache),并且在部署 EAR 期间我仍然得到 NoDefClassFound(来自这个 xmlrpc 库的类)。

问题是,maven-ejb-plugin 在最终的 EJB jar 中打包依赖项,但 maven-ear-plugin 打包它位于 EAR 目录的根目录中。

部署 EAR 时,在内部 EJB 模块上调用 INSTALL,但它没有找到 xmlrpc lib 类(它不是与 EJB jar 一起打包,而是与 EAR 一起打包,并且在 list 中没有任何条目)。

EJB 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>

<groupId>cz.ctu.fee.voxport.app_logic</groupId>
<artifactId>core</artifactId>
<version>1.0</version>
<packaging>ejb</packaging>

<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.xmlrpc</groupId>
<artifactId>xmlrpc-common</artifactId>
<version>3.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.xmlrpc</groupId>
<artifactId>xmlrpc-client</artifactId>
<version>3.1.3</version>
</dependency>
</dependencies>

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

</project>

有什么方法可以使用 maven 干净地解决这个问题吗?

最佳答案

我设法解决了这个问题。这些库似乎必须打包在/lib 目录中,而不是 EAR 的根目录中。添加 defaultLibBundleDir 元素解决了这个问题。

例如:

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<defaultLibBundleDir>lib</defaultLibBundleDir>
...

关于java - Maven EJB 打包依赖库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8156115/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com