BLUF:我试图将独立客户端连接到WebSphere中的Extreme Scale缓存时收到的异常有点误导,所以我在这里提供了解决方案。
我在WebSphere Application Server(WAS)v8.5中成功安装了WebSphere Extreme Scale(WXS)v8.5(注意:不要在Installation Manager中同时尝试这样做,否则文件将丢失 - 单独安装) 。我也成功安装了客户端和服务器EAR,因此我可以使用REST服务到客户端,然后连接到服务器以访问缓存。但是,当我尝试从java命令行(或从Eclipse中)运行独立客户端时,我遇到了以下异常:
java.lang.Throwable: 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:1272)
...
Caused by: java.lang.Throwable: connect: Address is invalid on local machine, or port is not valid on remote machine
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:381)
在ObjectGridManager上调用connect时:
_client = _ogManager.connect(hostport, null, clientObjectGridURL);
要检查的第一件事是objectGridClient.properties文件中的主机和端口号是正确的(例如,端口号将与应用程序服务器的端口列表中的BOOTSTRAP端口匹配)。就我而言,这是正确的。使用netstat -an | grep查看是否有人在监听端口,或者telnet到主机端口。
接下来要检查的是防火墙不会妨碍与端口的连接。还有来自服务器的客户端回调,因此您需要检查这不会产生问题。就我而言,这不是问题。
答案 0 :(得分:7)
结果是问题是我已经配置WAS并启用了一般安全性,因此管理控制台需要用户ID和密码。但是,当我调用ObjectGridManager进行连接时,我传递了一个null作为第二个参数,而不是传递正确的ClientSecurityConfiguration对象。显然,如果您已经保护了WAS,那么尝试连接到WAS中的缓存的外部客户端需要提供安全信息以验证它们是否可以连接。
我选择使用管理控制台/安全/全局安全关闭WAS安全性并取消选中启用管理安全性。这允许我通过传递null继续测试,并推迟启用安全性并添加适当的安全配置设置并在connect调用中提供正确的对象,直到我们准备在共享环境中进行测试(我的开发环境是自包含的)我的笔记本电脑没有连接到公共网络。)
我已经包含了这个解释,希望其他人能够找到解决方法 问题可以在这里找到,因为我没有成功找到这个替代解释。
答案 1 :(得分:0)
始终仔细检查您的存根类是否确实在部署中可用并且可用。听起来很简单,但这就是我遇到的问题......
因此出现此错误的原因可能多种多样。