WAS 7.0下使用EJB3.0的ClassCastException问题
软件名称:WAS
软件版本:7.0
环境平台:XP
问题描述:
在使用Servlet调用Stateful Session Bean的时候,发生java.lang.ClassCastException异常!!
// ******************************Stateful Session Bean*********************************//
@Stateful(name="TestStatefulBean")
public class TestStatefulBean implements TestStatefulBeanRemote {
public String sayHello(String name)
{
return name+"你好,我是TestStatefulBean!";
}
}
// ******************************Servlet*********************************//
try {
TestStatefulBeanRemote remote = (TestStatefulBeanRemote) ServiceLocator.getInstance().lookup("inter.TestStatefulBeanRemote"); <— 此行异常
if(remote!=null)
{
res = remote.sayHello("inter");
}
} catch (NamingException ex) {
Logger.getLogger(StatefulServlet.class.getName()).log(Level.SEVERE, null, ex);
}
现在在Servlet里面做远程调用的时候,标示异常的一行抛出java.lang.ClassCastException异常:
应用程序 WebApp_war 中 servlet StatefulServlet 的某一服务方法创建了未捕获到的异常。创建的异常:java.lang.ClassCastException: inter._TestStatefulBeanRemote_Stub incompatible with inter.TestStatefulBeanRemote
应该是容器生成的Stub文件发生转化的时候出现的问题,求助怎么解决这个问题!
此外,对于EJB项目生成的EJBModule.jar,使用命令行工具生成本地客户端的文件EJBModule_Stub.jar,然后使用本地客户端调用就可以,但是web就出错!