1

我有一个带有 IBM RAD 7.5 (Eclipse) 和 WebSphere 7 的基于 JavaEE 的 Web 应用程序。该应用程序具有带有远程接口的 EJB。它运行良好。

我为 JUnit 测试创建了一个新项目,并且正在尝试对 EJB 进行 JNDI 查找以对其进行测试,但出现以下错误:

“ClassCastException:org.omg.stub.java.rmi._Remote_Stub 与 com.myapp.UserServiceRemote 不兼容”

为了解决这个问题,我的理解是我必须运行 WebSphere createEJBStubs 命令来生成远程存根,以便 JUnit 应用程序(作为单独的应用程序运行)可以查找 EJB。

我的问题是:

当我通过右键单击 myappEAR 项目并选择“Run As > Run On Server”从 WebSphere 中运行我的应用程序时,WebSphere 将正在运行的 EAR 文件放在哪里?也就是说,它在哪个文件夹中?

我问是因为我的理解是我应该在它上面运行 createEJBStubs 命令,这将生成存根并将这些存根放在 EAR 中。

非常感谢任何建议,谢谢!

4

2 回答 2

0

仅供参考,我按照此处的说明创建了一个 ANT 脚本来构建包含存根的 EJB jar:

http://www-01.ibm.com/support/docview.wss?uid=swg21393419

于 2012-06-22T17:26:47.180 回答
0

为了加快处理速度,实际上并未构建 EAR。相反,应用程序被配置为从 RAD 工作区加载每个模块或 JAR 文件。我建议导出 EAR(从 RAD 或 WAS 管理控制台),然后在结果上使用 createEJBStubs。

于 2012-06-25T13:59:27.603 回答