我有一个基于JavaEE的Web应用程序,包含IBM RAD 7.5(Eclipse)和WebSphere 7.该应用程序具有带远程接口的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中。
非常感谢任何建议,谢谢!
罗布
答案 0 :(得分:1)
为了加快处理速度,实际上并未构建EAR。而是配置应用程序,以便从RAD工作区加载每个模块或JAR文件。我建议导出EAR(从RAD或WAS管理控制台),然后在结果上使用createEJBStubs。
答案 1 :(得分:0)
仅供参考,我按照这里的说明创建了一个ANT脚本来构建包含存根的EJB jar: