org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问的vmcid:IBM次要代码:来自独立应用程序的E07

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

我从独立的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 support page,它说要进入CSIv2入站和出站设置(由我,管理控制台 - >安全 - > GlobalSecurity-> RMI / IIOP安全)并将传输设置为SSL支持。

但是,它没有改变任何东西。我试图将'Cleint证书身份验证'更改为Never,并将CSIv2入站和出站传输到TCP / IP,但仍然没有成功。错误一直存在,直到我关闭了“启用管理安全性”,这不是一个选项,因为我需要启用“应用程序安全性”(应用程序逻辑依赖于此)。

如何让我的代码再次运行? WebSphere 7上的一切都很好。

java websphere rmi corba websphere-8
3个回答
0
投票

错误描述

org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问的vmcid:IBM次要代码:E07

是非常模糊的,发生在很多,而不是直接相关的情况下。

在我的情况下,它与RMI / IIOP安全设置无关,但它是一个类路径问题。我还在使用旧版本的com.ibm.ws.webservices.thinclient

切换到瘦客户端8.5.0,以及将启动JRE设置为标准(Oracle)JVM已解决了这个问题。


0
投票

我对这个问题的研究可能对其他人有用;

WebSphere 8将RMI / IIOP SSL安全性的默认设置从“支持”更改为“必需”。如果您需要安全连接,则需要从服务器获取证书并将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才会找到本地文件'orb.properties'。然后我发现在我的问题情况下,我的测试应用程序使用的是不同的JVM,我的真实应用程序使用的是没有'orb.properties'的JVM。我可以通过多种方式解决问题。通过在我的应用程序中包含orb.properties并将内容作为系统属性注入。


0
投票

在我的情况下,从需要SSL切换CSIV入站到SSL支持并重新启动服务器帮助。

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