Java Corba ORBD错误
我正在使用CORBA开发一个简单的远程管理工具。这是我的服务器代码Java Corba ORBD错误,java,distributed-computing,corba,Java,Distributed Computing,Corba,我正在使用CORBA开发一个简单的远程管理工具。这是我的服务器代码 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package simrat; import SimRATApp.SimRAT; import SimRATApp.SimRATHelper; import java.io.IOException; import java.uti
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package simrat;
import SimRATApp.SimRAT;
import SimRATApp.SimRATHelper;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDialog;
import javax.swing.JOptionPane;
import org.omg.CORBA.ORB;
import org.omg.CORBA.ORBPackage.InvalidName;
import org.omg.CosNaming.NameComponent;
import org.omg.CosNaming.NamingContextExt;
import org.omg.CosNaming.NamingContextExtHelper;
import org.omg.CosNaming.NamingContextPackage.CannotProceed;
import org.omg.CosNaming.NamingContextPackage.NotFound;
import org.omg.PortableServer.POA;
import org.omg.PortableServer.POAHelper;
import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
import org.omg.PortableServer.POAPackage.ServantNotActive;
import org.omg.PortableServer.POAPackage.WrongPolicy;
/**
*
* @author Rumesh
*/
public class Server {
public SimRATMain sim;
public static void main(String[] args) {
try {
try {
Runtime.getRuntime().exec("orbd -ORBInitialPort 1059 -port 1032 -ORBInitialHost localhost");
} catch (IOException ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
}
//String[] args = {};
ORB orb = ORB.init(args, null);
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
SimRATImpl impl = new SimRATImpl();
impl.setORB(orb);
org.omg.CORBA.Object ref = rootpoa.servant_to_reference(impl);
SimRAT href = SimRATHelper.narrow(ref);
org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
NameComponent path[] = ncRef.to_name("SimRAT");
ncRef.rebind(path, href);
System.out.println("Server Ready and waiting...");
JOptionPane.showMessageDialog(null, "Server created successfully", "SimRAT Server", 1);
orb.run();
} catch (InvalidName ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (AdapterInactive ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (ServantNotActive ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (WrongPolicy ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (org.omg.CosNaming.NamingContextPackage.InvalidName ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (NotFound ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (CannotProceed ex) {
Logger.getLogger(Server.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Server creation failed", "SimRAT Server", 1);
}
}
}
但是当我尝试运行程序时,我得到了以下错误
Jun 14, 2014 2:54:04 PM com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl <init>
WARNING: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 192.168.1.33; 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:2200)
at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2221)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:223)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:236)
at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(SocketOrChannelContactInfoImpl.java:119)
at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:185)
at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:136)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:99)
at com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:132)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
at com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
at com.sun.corba.se.impl.orb.ORBImpl.resolve_initial_references(ORBImpl.java:1170)
at simrat.Server.main(Server.java:125)
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect0(Native Method)
at sun.nio.ch.Net.connect(Net.java:364)
at sun.nio.ch.Net.connect(Net.java:356)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:623)
at java.nio.channels.SocketChannel.open(SocketChannel.java:184)
at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:78)
at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(SocketOrChannelConnectionImpl.java:206)
... 11 more
2014年6月14日下午2:54:04 com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl
警告:“IOP0041201:(通信失败)连接失败:socketType:IIOP_CLEAR_TEXT;主机名:192.168.1.33;端口:900”
org.omg.CORBA.COMM_故障:vmcid:SUN次要代码:201已完成:否
在com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2200)上
在com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:2221)
位于com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:223)
位于com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:236)
位于com.sun.corba.se.impl.transport.socketorchannelcontactinfo.createConnection(socketorchannelcontactinfo.java:119)
位于com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:185)
位于com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:136)
位于com.sun.corba.se.impl.resolver.BootstrapResolverImpl.invoke(BootstrapResolverImpl.java:99)
位于com.sun.corba.se.impl.resolver.BootstrapResolverImpl.resolve(BootstrapResolverImpl.java:132)
位于com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
位于com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
位于com.sun.corba.se.impl.resolver.CompositeResolverImpl.resolve(CompositeResolverImpl.java:47)
在com.sun.corba.se.impl.orb.orbempl.resolve_initial_references上(orbempl.java:1170)
位于simrat.Server.main(Server.java:125)
原因:java.net.ConnectException:连接被拒绝:连接
位于sun.nio.ch.Net.connect0(本机方法)
位于sun.nio.ch.Net.connect(Net.java:364)
位于sun.nio.ch.Net.connect(Net.java:356)
位于sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:623)
位于java.nio.channels.SocketChannel.open(SocketChannel.java:184)
位于com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(DefaultSocketFactoryImpl.java:78)
位于com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.(SocketOrChannelConnectionImpl.java:206)
... 还有11个
我试着换衣服
-ORBInitialHost localhost
至-ORBInitialHost 192.168.1.33
但错误依然存在。有人能给我一个解决方案让orbd开始吗
您启动了“orbd”程序吗?我正在用这一行启动orbd程序。这就是发生错误的那一行。Runtime.getRuntime().exec(“orbd-ORBInitialPort 1059-port 1032-ORBInitialHost localhost”);不,不是。查看堆栈跟踪。Runtime.exec()不会出现在它的任何位置。当调用resolve_initial_references()时会发生这种情况。它似乎没有执行。我试图在命令提示符下启动orbd,但得到了相同的错误。你知道为什么吗?你从这个程序或orbd中得到了相同的错误?为什么要将所有这些端口指定给orbd,而不是指定给您自己的代码!请在没有所有端口参数的情况下尝试。谢谢。我甚至忘了我是在什么时候问这个问题的D:D