org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问的vmcid:IBM次要代码:来自独立应用程序的E07 [英] org.omg.CORBA.TRANSIENT: initial and forwarded IOR inaccessible vmcid: IBM minor code: E07 from stand-alone app

查看:748
本文介绍了org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问的vmcid:IBM次要代码:来自独立应用程序的E07的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要从非常简单的独立Java应用程序连接到WebSphere实例:

I'm connecting to the WebSphere instance from the stand-alone Java app which is quite trivial:

InitialContext initCtx = new InitialContext();

该代码在WebSphere 7中运行正常,但是在更新到WebSphere 8.5之后,出现了以下异常:

That code was working perfectly in WebSphere 7, but after updating to WebSphere 8.5 I got the following exception:

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-Supported.

After research, I've fout out that IBM support page, which said to go to CSIv2 inbound and outbound settings (by me, Admin Console->Security->GlobalSecurity->RMI/IIOP security) and set the transport to SSL-Supported.

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

However, it didn't change anything. I've tried to change the 'Cleint certificate authentication' to Never, and Transport to TCP/IP for both CSIv2 inbound and outbound, but still without success. The error persisted until I've turned off 'Enable administrative security', which is not an option, because I need to enable 'Application Security' (the application logic depends of that).

如何使我的代码再次正常工作?在WebSphere 7上一切正常.

How can I make my code working again? Everything was OK on WebSphere 7.

推荐答案

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

My research on this issue may prove useful to others;

WebSphere 8将RMI/IIOP SSL安全性的缺省设置从 从支持"到必需".如果您想要安全的连接,则需要 从服务器获取证书并将Java系统属性设置为指定证书位置的文件;

WebSphere 8 changed the default setting of RMI/IIOP SSL security from 'supported' to 'required'. If you want a secure connection you'll need to get the certs from the server and set Java system properties to files that specify the location of the certs;

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

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

If this doesn't work, you'll need to start debugging by setting the following System properties;

com.ibm.CORBA.Debug=true
com.ibm.CORBA.CommTrace=true
com.ibm.CORBA.Debug.Output=/tmp/corba.log

通过研究工作目录中的此日志和orb跟踪日志,我发现客户端无法在端口= 0"建立与服务器的临时TCP连接.在日志中没有提到SSL!我写了一个小应用程序来测试我的代码是否以Java控制台应用程序运行,发现SSL连接成功并且可以正常工作.通过比较日志,我发现只有在良好情况下,JVM才能找到本地文件"orb.properties".然后,我发现在遇到问题的情况下,我的测试应用程序使用的是其他JVM,而我的真实应用程序使用的是没有'orb.properties'的JVM.我可以通过多种方式解决问题,例如通过在我的应用程序中包含orb.properties并将内容作为系统属性注入.

By studying this log and orb trace logs in the working directory, I found that the client failed to establish an ephemeral TCP connection to the server at "port=0". No mention of SSL in the logs! I wrote a small app to test my code running as a java console app and found that the SSL connection was successful and it worked fine. By diff'ing the logs, I found that only in the good case, the JVM was finding a local file 'orb.properties'. I then found that in my problem case, my test app was using a different JVM and my real app was using a JVM that had no 'orb.properties'. I could resolve the problem in a number of ways .. e.g. by including an orb.properties in my application and injecting the contents as System properties.

这篇关于org.omg.CORBA.TRANSIENT:初始和转发的IOR无法访问的vmcid:IBM次要代码:来自独立应用程序的E07的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆