JDK 17 中的 WebSphere Liberty BASE 远程 EJB 调用失败

问题描述 投票:0回答:1

在这里,我尝试在部署在两个单独的虚拟机中的两个 JavaEE 应用程序之间启动远程 ejb 调用,当我从主 JavaEE 应用程序启动远程 ejb 查找时,辅助服务器的控制台日志中将出现以下错误跟踪。

[err] Exception in thread "Yoko:ThreadPerRequest:Dispatcher" 
[err] java.lang.NoClassDefFoundError: Could not initialize class org.apache.yoko.orb.OB.SendingContextRuntimes
[err]   at org.apache.yoko.orb.OB.CollocatedServer.send(CollocatedServer.java:231)
[err]   at org.apache.yoko.orb.OB.CollocatedServer.sendReceive(CollocatedServer.java:295)
[err]   at org.apache.yoko.orb.OB.CollocatedClient.sendReceive(CollocatedClient.java:144)
[err]   at org.apache.yoko.orb.OB.Downcall.request(Downcall.java:300)
[err]   at org.apache.yoko.orb.OB.DowncallStub.invoke(DowncallStub.java:615)
[err]   at org.apache.yoko.orb.CORBA.Delegate.invoke(Delegate.java:403)
[err]   at org.apache.yoko.orb.CORBA.Delegate.is_a(Delegate.java:252)
[err]   at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:54)
[err]   at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:68)
[err]   at org.apache.yoko.orb.CosNaming.tnaming2.NamingContextImpl$POAServant.resolveObject(NamingContextImpl.java:291)
[err]   at org.apache.yoko.orb.CosNaming.tnaming2.NamingContextBase.resolveContext(NamingContextBase.java:567)
[err]   at org.apache.yoko.orb.CosNaming.tnaming2.NamingContextBase.resolve(NamingContextBase.java:266)
[err]   at org.omg.CosNaming.NamingContextExtPOA._invoke(NamingContextExtPOA.java:366)
[err]   at org.apache.yoko.orb.OBPortableServer.ServantDispatcher.dispatch(ServantDispatcher.java:189)
[err]   at org.apache.yoko.orb.OBPortableServer.POA_impl._OB_dispatch(POA_impl.java:1245)
[err]   at org.apache.yoko.orb.OB.DispatchRequest_impl.invoke(DispatchRequest_impl.java:56)
[err]   at org.apache.yoko.orb.OB.DispatchThreadPerRequest_impl$Dispatcher.run(DispatchStrategyFactory_impl.java:70)
[err] Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.ExceptionInInitializerError [in thread "Default Executor-thread-19"]
[err]   at org.apache.yoko.rmi.impl.TypeRepository.get(TypeRepository.java:260)
[err]   at org.apache.yoko.rmi.impl.ValueHandlerImpl.<init>(ValueHandlerImpl.java:62)
[err]   at org.apache.yoko.rmi.impl.ValueHandlerImpl.<init>(ValueHandlerImpl.java:52)
[err]   at org.apache.yoko.rmi.impl.ValueHandlerImpl$HandlerHolder.<clinit>(ValueHandlerImpl.java:67)
[err]   at org.apache.yoko.rmi.impl.ValueHandlerImpl.get(ValueHandlerImpl.java:73)
[err]   at org.apache.yoko.rmi.impl.UtilImpl.createValueHandler(UtilImpl.java:460)
[err]   at javax.rmi.CORBA.Util.createValueHandler(Util.java:63)
[err]   at org.apache.yoko.orb.OB.SendingContextRuntimes.<clinit>(SendingContextRuntimes.java:30)
[err]   at org.apache.yoko.orb.OB.CollocatedServer.send(CollocatedServer.java:231)
[err]   at org.apache.yoko.orb.OB.CollocatedServer.sendReceive(CollocatedServer.java:295)
[err]   at org.apache.yoko.orb.OB.CollocatedClient.sendReceive(CollocatedClient.java:144)
[err]   at org.apache.yoko.orb.OB.Downcall.request(Downcall.java:300)
[err]   at org.apache.yoko.orb.OB.DowncallStub.invoke(DowncallStub.java:615)
[err]   at org.apache.yoko.orb.CORBA.Delegate.invoke(Delegate.java:403)
[err]   at org.omg.CORBA.portable.ObjectImpl._invoke(ObjectImpl.java:81)
[err]   at com.ibm.ws.threading.internal.PolicyTaskFutureImpl.run(PolicyTaskFutureImpl.java:762)
[err]   at com.ibm.ws.threading.internal.PolicyExecutorImpl.runTask(PolicyExecutorImpl.java:1172)
[err]   at com.ibm.ws.threading.internal.PolicyExecutorImpl$GlobalPoolTask.run(PolicyExecutorImpl.java:198)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[err]   at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err]   at java.base/java.lang.Thread.run(Thread.java:833)

请注意,两个 JavaEE 应用程序都部署在 JDK 17 运行时中,远程 ejb 查找将按如下方式执行,

Context ctx = new InitialContext(jndiProps);
Object remoteObj = ctx.lookup("corbaname:iiop:10.0.0.127:2809/NameService#ejb/global/app_server_2/RMS.jar/OMSCoreServicesBean#com.dfn.oms.newgen.core.tx.service.OMSCoreServicesWrapperRemote");
return (OMSCoreServicesWrapperRemote) PortableRemoteObject.narrow(remoteObj, OMSCoreServicesWrapperRemote.class);

有人可以建议解决这个问题的方法吗?

rmi ejb-3.0 websphere-liberty java-17
1个回答
0
投票

这可能是 Java 17 中模块访问的问题。

  • 还有更多堆栈跟踪吗?
  • 还有其他错误或警告消息吗?
  • 您的服务器目录中是否有包含更多信息的
    logs/ffdc
    文件夹?

如果我们可以找出一些缺失的模块访问权限,我们可以将其添加到您的服务器本地。

© www.soinside.com 2019 - 2024. All rights reserved.