我从独立的Java应用程序连接到WebSphere实例,这非常简单:
InitialContext initCtx = new InitialContext();该代码在WebSphere 7中运行良好,但是在更新到WebSphere 8.5之后,我得到了以下异常:
Caused by: org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 completed: No
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1276)
at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1457)
at com.ibm.rmi.corba.ClientDelegate.createRequest(ClientDelegate.java:1164)
at com.ibm.CORBA.iiop.ClientDelegate.createRequest(ClientDelegate.java:1423)
at com.ibm.rmi.corba.ClientDelegate.request(ClientDelegate.java:1886)
at com.ibm.CORBA.iiop.ClientDelegate.request(ClientDelegate.java:1379)
at org.omg.CORBA.portable.ObjectImpl._request(ObjectImpl.java:458)
at com.ibm.WsnBootstrap._WsnNameServiceStub.getProperties(_WsnNameServiceStub.java:38)
at com.ibm.ws.naming.util.WsnInitCtxFactory.mergeWsnNSProperties(WsnInitCtxFactory.java:1441)
... 43 more经过研究,我发现了IBM支持页面,它要求转到CSIv2入站和出站设置(由我来管理控制台->安全->GlobalSecurity->RMI/IIOP安全性),并将传输设置为SSL支持的。
然而,这并没有改变任何事情。我试图将“Cleint证书身份验证”更改为“从不”,并将CSIv2入站和出站的传输更改为TCP/IP,但仍然没有成功。该错误一直存在,直到我关闭了“启用管理安全性”(这不是一个选项),因为我需要启用“应用程序安全性”(应用程序逻辑取决于此)。
如何使我的代码再次工作?在WebSphere 7上一切都很好。
发布于 2015-06-28 14:49:56
我对这一问题的研究可能对其他人有帮助;
WebSphere 8将RMI/IIOP安全性的默认设置从“支持”更改为“必需”。如果您想要一个安全的连接,您将需要从服务器获得证书,并将Java系统属性设置为指定证书位置的文件;
com.ibm.CORBA.ConfigURL=file:/opt/IBM/JazzSM/profile/properties/sas.client.props com.ibm.SSL.ConfigURL=file:/opt/IBM/JazzSM/profile/properties/ssl.client.props
如果这不起作用,您将需要通过设置以下系统属性来开始调试;
com.ibm.CORBA.Debug=true com.ibm.CORBA.CommTrace=true com.ibm.CORBA.Debug.Output=/tmp/corba.log
通过研究工作目录中的日志和orb跟踪日志,我发现客户端未能建立到"port=0“服务器的临时TCP连接。日志中没有提到SSL!我编写了一个小应用程序来测试作为java控制台应用程序运行的代码,发现SSL连接是成功的,而且运行良好。通过对日志进行区分,我发现只有在好的情况下,JVM才会找到一个本地文件“Rail.properties”。然后,我发现在我的问题案例中,我的测试应用程序使用的是不同的JVM,而我真正的应用程序使用的是一个没有“轨道.orb.properties”的JVM。我可以用多种方法解决这个问题。例如,在我的应用程序中包括一个orb.properties,并将内容作为系统属性注入。
发布于 2015-10-21 12:34:35
在我的例子中,将CSIV入站切换到SSL--从SSL支持--需要的和帮助重新启动服务器。
发布于 2014-04-15 07:14:36
错误描述
org.omg.CORBA.TRANSIENT:初始和转发IOR不可访问的vmcid: IBM次要代码: E07
是非常模糊和发生在许多情况下,没有直接联系的情况。
在我的例子中,它与RMI/IIOP安全设置无关,但它是一个类路径问题。我仍然在使用旧版本的com.ibm.ws.webservices.thinclient。
切换到ThinClient8.5.0,以及将启动JRE设置为标准(Oracle) JVM,解决了这个问题。
https://stackoverflow.com/questions/23062079
复制相似问题