远程连接corba 服务器的问题

ourjavasky 2009-12-11 02:47:58
import org.omg.CORBA.ORB;
import org.omg.CosNaming.NamingContextExt;
import org.omg.CosNaming.NamingContextExtHelper;
import HelloApp.Hello;
import HelloApp.HelloHelper;
public class HelloClient
{
static Hello helloImpl;
public static void main(String args[]){
try{
// create and initialize the ORB
String[] a={"–ORBInitialPort","80","–ORBInitialHost","10.88.129.155"};
// String nameservice = "corbaloc::10.88.129.155:5555/NameService";
// String[] a={"-ORBInitRef", "NameService="+nameservice };
ORB orb = ORB.init(a, null);
System.out.println("ORB initialised\n");

// get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
// Use NamingContextExt instead of NamingContext,
// part of the Interoperable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

// resolve the Object Reference in Naming
String name = "Hello1";
helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));

// System.out.println("Obtained a handle on server object: " + helloImpl);
System.out.println(helloImpl.sayHello());
//helloImpl.shutdown();
}
catch (Exception e) {
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
} //end main
} // end class

//地址明明写的是10.88.129.155 端口号明明写80结果异常如下
ORB initialised

ERROR : org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2172)
2009-12-11 14:47:40 com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl <init>
警告: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 10.88.129.159; port: 900"
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2172)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2193)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:205)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:218)
at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:101)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:152)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:118)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:74)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:107)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1155)
at HelloClient.main(HelloClient.java:20)
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507)
at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:60)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:188)
... 11 more
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2193)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:205)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:218)
at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:101)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:152)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:118)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:74)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:107)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:22)
at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1155)
at HelloClient.main(HelloClient.java:20)
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:507)
at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:60)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:188)
... 11 more


警告: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 10.88.129.159; port: 900"
这是为什么呢 我曾把端口号改成了5555 结果还是报读的端口号是900

请高手来一起看看到底是什么问题 我就是通过客户端访问10.88.129.155 端口 80的服务器
老是连接失败。
...全文
1729 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayue1125 2012-05-08
  • 打赏
  • 举报
回复
我也出现了同样的问题,按照你的代码修改后又出现了另外的问题,应该是这句:
org.omg.CORBA.Object ncObj = orb.resolve_initial_references("NameService");
报以下的错误:
org.omg.CORBA.OBJECT_NOT_EXIST: vmcid: 0x0 minor code: 0 completed: No
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.corba.se.impl.protocol.giopmsgheaders.MessageBase.getSystemException(Unknown Source)
at com.sun.corba.se.impl.protocol.giopmsgheaders.ReplyMessage_1_0.getSystemException(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaMessageMediatorImpl.getSystemExceptionReply(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.processResponse(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.marshalingComplete(Unknown Source)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.invoke(Unknown Source)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(Unknown Source)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(Unknown Source)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown Source)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown Source)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(Unknown Source)
at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(Unknown Source)
at com.nm.server.nbif.Server.main(Server.java:40)

能否指教一下?
caojiapingaccp 2011-10-20
  • 打赏
  • 举报
回复
能把整个helloCorba发给我吗?caojiapingaccp@qq.com
Shejiweilai 2011-08-18
  • 打赏
  • 举报
回复
学习学习
chuangpu11 2011-08-11
  • 打赏
  • 举报
回复
我是corba的初学者,谁能给我个在Unix/linux上jacorb的安装文档啊?一直在linux上没有安装成功,小弟邮箱:liguoliang66@sohu.com,谢了!!!
leecyz 2011-03-10
  • 打赏
  • 举报
回复
Properties props = new Properties();
// 生成一个ORB,并初始化,这个和Server端一样
props .put("org.omg.CORBA.ORBInitialPort", "1050");
props.put("org.omg.CORBA.ORBInitialHost", "10.88.129.155");

这几句让我找了很久- -
zyking80 2010-11-16
  • 打赏
  • 举报
回复
那server端需要修改吗?
sbgphl 2010-01-11
  • 打赏
  • 举报
回复
但我还没解决 :(
sbgphl 2010-01-11
  • 打赏
  • 举报
回复
我的问题和你的很类似
jacorb开发corba,客户端和服务端同时在win下或者linux下运行没有问题。

但是服务器端放到linux下,客户端win就发生了无法响应的情况。
dxhangel 2009-12-11
  • 打赏
  • 举报
回复
远程访问是需要使用JNDI来进行远程寻址的。
连接远程对象之后才能进行通信。
所以我首先考虑的是你的JNDI的配置是否有问题。
祝贺你。。。
白让我忙了打字了。。

ourjavasky 2009-12-11
  • 打赏
  • 举报
回复
问题已经解决了,网上的例子有问题
应该是这么写
// A sample Java IDL object client application.
import java.util.Properties;

import org.omg.CORBA.ORB;
import org.omg.CosNaming.NamingContextExt;
import org.omg.CosNaming.NamingContextExtHelper;

import HelloApp.Hello;
import HelloApp.HelloHelper;
public class HelloClient
{
static Hello helloImpl;
public static void main(String args[]){
try{
// create and initialize the ORB
//String[] a={"–ORBInitialPort","80","–ORBInitialHost","10.88.129.155"};
// String nameservice = "corbaloc::10.88.129.155:5555/NameService";
// String[] a={"-ORBInitRef", "NameService="+nameservice };
Properties props = new Properties();
// 生成一个ORB,并初始化,这个和Server端一样
props .put("org.omg.CORBA.ORBInitialPort", "1050");
props.put("org.omg.CORBA.ORBInitialHost", "10.88.129.155");
ORB orb = ORB.init(args, props);
// ORB orb = ORB.init(a, null);
System.out.println("ORB initialised\n");

// get the root naming context
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
// Use NamingContextExt instead of NamingContext,
// part of the Interoperable naming Service.
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

// resolve the Object Reference in Naming
String name = "Hello1";
helloImpl = HelloHelper.narrow(ncRef.resolve_str(name));

// System.out.println("Obtained a handle on server object: " + helloImpl);
System.out.println(helloImpl.sayHello());
//helloImpl.shutdown();
}
catch (Exception e) {
System.out.println("ERROR : " + e) ;
e.printStackTrace(System.out);
}
} //end main
} // end class
ourjavasky 2009-12-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dxhangel 的回复:]
ERROR : org.omg.CORBA.COMM_FAILURE:  vmcid: SUN  minor code: 201  completed: No
org.omg.CORBA.COMM_FAILURE:  vmcid: SUN  minor code: 201  completed: No
这个地方应该是抛出的错误信息的描述
这个错误应该是jndi有问题。
看有没有j2ee.jar,修改一下jndi.properties文件.
java.naming.provider.url默认的是localhost
[/Quote]
我在本地启动客户端和服务器可以相连的,在客户端我看了没有j2ee.jar应该在那里找呢
dxhangel 2009-12-11
  • 打赏
  • 举报
回复
ERROR : org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No

这个地方应该是抛出的错误信息的描述
这个错误应该是jndi有问题。
看有没有j2ee.jar,修改一下jndi.properties文件.
java.naming.provider.url默认的是localhost
dxhangel 2009-12-11
  • 打赏
  • 举报
回复
这个错误信息里面的ip应该是你本机的ip和端口。
该错误信息只是描述了连接失败,并没有显示失败的原因。
还有没有错误信息。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧