ClassCastException b/w WAS 8.5.5 中的 IBMorb 和 jacorb jar

ClassCastException b/w IBMorb and jacorb jars in WAS 8.5.5

我有一个应用程序正在使用 jacorb.jar (org.omg.orb.ORB.class)。当我在 WAS 8.5.5 中部署我的 war 文件时,我收到位于 openJdk/jre/lib/ibmorb.jar 文件中的 ibmorb 的类广播异常。谁能帮助我使用 jacorb.jar 和解决错误。

错误:

[3/3/15 5:30:51:863 PST] 00000001 ActivityServi E   WACT0001E: The method pre_init(ORBInitInfo) in class com.ibm.ws.activity.remote.cos.ActivityServiceClientInterceptor received an unexpected exception; 
the exception stack trace follows: java.lang.ClassCastException: org.jacorb.orb.portableInterceptor.ORBInitInfoImpl incompatible with com.ibm.CORBA.iiop.ExtendedORBInitInfo
at com.ibm.ws.activity.remote.cos.ActivityServiceClientInterceptor.pre_init(ActivityServiceClientInterceptor.java:219)
at org.jacorb.orb.ORB.interceptorPreInit(Unknown Source)
at org.jacorb.orb.ORB.internalInit(Unknown Source)
at org.jacorb.orb.ORB.set_parameters(Unknown Source)
at org.omg.CORBA.ORB.init(ORB.java:371)

Caused by: java.lang.ClassCastException: org.jacorb.orb.ORB incompatible with com.ibm.CORBA.iiop.ORB
at com.ibm.ws.orb.GlobalORBFactory.init(GlobalORBFactory.java:92)
at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:179)
at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:83)
at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:59)
at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:102)

IBM 不支持第三方 ORB,因为它提供了自己的 ORB。您可以在 IBM JAVA jre 文件夹中找到具有默认属性的 orb.properties。如果你想添加任何与 ORB 相关的东西需要通知 JRE ,我们可以在这个 属性 文件夹中添加一个条目。

我已经从我的代码中完全删除了 JacORB,并使用了 IBM ORB。如果您使用 JacORB 编译代码并在 IBM websphere 中使用相同的代码,它们不会有任何问题,因为包结构和方法签名不会改变。我已经实际测试过了。

有关创建 corba 名称 space 和在代码中使用它的更多信息,请参阅此线程。如果您遵循这些,则无需在 IBM websphere 中添加 jacorb jar。