当我尝试查找远程ejb jndi时,IBM消息Broker会为工厂对象抛出ClassCastexception。 但是相同的代码适用于普通的本地java应用程序和junit。为什么仅在从IBM WMB调用时会出现此问题
Context context = new InitialContext(ejbJndiProperties);
Object factoryObj = context.lookup("SampleBeanTAFJ/remote");
return (SampleBeanRemote) factoryObj;
答案 0 :(得分:0)
这通常是通过将接口的部分加载到实现类的不同类加载器中来调用的。
我会使用env var:
IBM_JAVA_OPTIONS = -Dibm.cl.verbose = *
然后重启代理,这会将类加载跟踪转储到stdout / console.txt,这可能会给你一些线索。
错误涉及哪些确切的类以及它们存储的罐子是什么?部署到EG还是通过SHARED-CLASSES引用?确切的细节决定了这里应该使用哪些类加载器。