0

我的应用程序在 websphere 运行时 6.1 (com.ibm.ws.runtime_6.1.0.jar) 中使用 com.ibm.ws.Transaction.TransactionManagerFactory。

现在需要将其迁移到 websphere 8.5。但在运行时 8.5 (com.ibm.ws.runtime.jar) 中,TransactionManagerFactory 定义在两个包中:com.ibm.tx.jta.TransactionManagerFactory 和 com.ibm.ws.Transaction.TransactionManagerFactory。

编译应用程序时,编译器似乎总是使用 com.ibm.tx.jta 中的那个,并显示错误:

无法访问 com.ibm.tx.jta.TransactionManagerFactory 的 com.ibm.tx.jta.TransactionManagerFactory [javac] 类文件未找到 [javac] com.ibm.ws.Transaction.WebSphereTransactionManager tm = com.ibm.ws.Transaction。 TransactionManagerFactory.getTransactionManager();

如何使编译器使用正确的类?有没有人对如何解决这个问题有想法?

提前致谢

4

2 回答 2

0

如果这是编译时错误,那么您只需要完全限定类类型,并完整地拼出类型。这样,编译器将不会使用您要使用的那个,您也不必猜测。您可能还需要调整项目依赖项,希望这会产生正确的类路径,而您不必手动四处寻找。此外,使用您的项目所依赖的那个。如果它是一个非常古老的项目,我想它不是 Maven。

于 2013-08-29T21:09:50.883 回答
0

com.ibm.ws.Transaction 不是 API,因此您一开始就不应该使用它。 WAS_HOME/dev/was_public.jar包含产品的公共 API。也许 UOWManagerFactory 或 UOWSynchronizationRegistry 会更好?

于 2013-09-03T21:37:22.290 回答