Java org.omg.CORBA.TRANSIENT:初始和转发IOR不可访问vmcid:IBM次要代码:独立应用程序中的E07

Java org.omg.CORBA.TRANSIENT:初始和转发IOR不可访问vmcid:IBM次要代码:独立应用程序中的E07,java,websphere,rmi,corba,websphere-8,Java,Websphere,Rmi,Corba,Websphere 8,我从独立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: N

我从独立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
经过研究,我找到了,这意味着要转到CSIv2入站和出站设置(由我,管理控制台->安全->全局安全->RMI/IIOP安全),并将传输设置为支持SSL

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

如何使我的代码重新工作?WebSphere7上一切正常。

错误描述

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

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

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


切换到thinclient 8.5.0,并将启动JRE设置为标准(Oracle)JVM,解决了这个问题。

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

WebSphere8将RMI/IIOP SSL安全性的默认设置从 “支持”到“必需”。如果你想要一个安全的连接,你需要 从服务器获取证书,并将Java系统属性设置为指定证书位置的文件

如果这不起作用,则需要通过设置以下系统属性开始调试


通过研究工作目录中的此日志和orb跟踪日志,我发现客户端无法在“port=0”处建立到服务器的临时TCP连接。日志中没有提到SSL!我编写了一个小应用程序来测试作为java控制台应用程序运行的代码,发现SSL连接成功,工作正常。通过区分日志,我发现只有在好的情况下,JVM才能找到一个本地文件“orb.properties”。然后我发现在我的问题案例中,我的测试应用程序使用的是不同的JVM,而我真正的应用程序使用的JVM没有“orb.properties”。我可以用多种方法解决这个问题。。e、 g.通过在我的应用程序中包含一个orb.properties并将内容作为系统属性注入。

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

我建议您向供应商报告问题。
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