我正在尝试将使用 IBM websphere 8.0.0.5 的“经典”JAVA EE 项目转换为 Maven 多模块项目并面临 IBM 依赖项的问题。
我们使用来自以下包的 IBM 类:
- com.ibm.websphere.asynchbeans
- com.ibm.websphere.scheduler
- com.ibm.websphere.ce.cm
- com.ibm.ws.asynchbeans
- com.ibm.ws.util.ThreadPool
为了编译我的本地项目,我从 IBM 下载了 was.installer-8.0.0.pm。并使用
将它安装到我的mavenmvn install -f "was.installer-8.0.0.pom" -D serverInstallationFolder="C:\Program Files (x86)\IBM\WebSphere\AppServer"
根据命令行输出,此步骤成功。
然后我按照 IBM 的描述将以下依赖项添加到我的项目中:
在 parent 中:
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was</artifactId>
<version>8.0.0</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
在模块中:
<dependency>
<groupId>com.ibm.tools.target</groupId>
<artifactId>was</artifactId>
</dependency>
但是我仍然无法编译我的项目,因为找不到 IBM 包。
谁能帮我找出并改正我犯的错误?
编辑
在遵循评论中的 BevynQ 提示后,我将“was_public.jar”复制到“was_public-8.0.0.jar”(在 IBM here 中描述)并将其添加到我的存储库中:
mvn install:install-file -Dfile="C:\Program Files (x86)\IBM\WebSphere\AppServer\dev\was_public-8.0.0.jar" -DpomFile="C:\Program Files (x86)\IBM\WebSphere\AppServer\dev\was_public-8.0.0.pom"
然后我将依赖项更改为:
<dependency>
<groupId>com.ibm.websphere.appserver</groupId>
<artifactId>was_public</artifactId>
<version>8.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.ibm.websphere.appserver</groupId>
<artifactId>was</artifactId>
</dependency>
这有助于解决导入到 com.ibm.websphere
的编译错误。
我现在仍然打开的是 packages com.ibm.ws.*
包。有人有想法吗?
编辑 2
我添加了以下依赖项,然后摆脱了 com.ibm.ws.*
导入错误。
<dependency>
<groupId>com.ibm.websphere.ws</groupId>
<artifactId>com.ibm.ws.runtime</artifactId>
<version>1.0.0</version>
</dependency>
但它仍然无法编译,因为现在无法找到间接引用(在我的例子中是 commonj.work.WorkManager
)。看来我需要为每一件事添加更多的 .jars。难道没有更简单的方法来一次提供所有 websphere jar,如上面链接的教程中所述,使用 com.ibm.tools
依赖项(不起作用)?
最佳答案
一般来说,com.ibm.websphere
是供应用程序使用的公共(public) API(这适用于您上面列出的包),这与 was_public.jar
但是,com.ibm.ws
包一般是产品内部构件。请问您使用的是 com.ibm.ws.asynchbeans
包中的哪些接口(interface)方法?也许有一个公共(public) API 替代方案。
关于 commonj.work
,我在 WebSphere Application Server 产品图像中唯一能找到它的地方是 WAS/plugins/com.ibm.ws.prereq.commonj-twm.jar
所以看起来您需要使用它来编译。
关于java - IBM Websphere 包的 Maven 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36564098/