Ошибка в org.omg.CORBA.Object objRef = orb.resolve_initial_references(NameService);

Я получаю эту странную ошибку, когда запускаю свой простой сервер CORBA (который я создал по этому руководству0

Вот мой код:

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;

import HotelServer.Hotel;
import HotelServer.HotelHelper;
import HotelServer.HotelImpl;


public class StartServers {

    public static void main(String[] args) throws AdapterInactive, InvalidName, ServantNotActive, WrongPolicy, NotFound, CannotProceed, org.omg.CosNaming.NamingContextPackage.InvalidName {
          // create and initialize the ORB //// get reference to rootpoa & activate the POAManager
        ORB orb = ORB.init(args, null);
        POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
        rootpoa.the_POAManager().activate();

        HotelImpl hotel = new HotelImpl();
        hotel.setOrb(orb);

        // get object reference from the servant
        org.omg.CORBA.Object ref = rootpoa.servant_to_reference(hotel);
        Hotel hotelref = HotelHelper.narrow(ref);

        org.omg.CORBA.Object objRef =  orb.resolve_initial_references("NameService");
        NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);

        NameComponent path[] = ncRef.to_name( "hotel1" );
        ncRef.rebind(path, hotelref);

        orb.run();

        System.out.println("ORB Server is running...");
    }

}

Ошибка происходит в этой строке: org.omg.CORBA.Object objRef = orb.resolve_initial_references("NameService");

Вот полная ошибка:

com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl <init>
WARNING: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: localhost; port: 1050"
org.omg.CORBA.COMM_FAILURE:   vmcid: SUN  minor code: 201  completed: No
    at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(Unknown Source)
    at com.sun.corba.se.impl.logging.ORBUtilSystemException.connectFailure(Unknown Source)
    at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(Unknown Source)
    at com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl.<init>(Unknown Source)
    at com.sun.corba.se.impl.transport.SocketOrChannelContactInfoImpl.createConnection(Unknown Source)
    at com.sun.corba.se.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(Unknown Source)
    at com.sun.corba.se.impl.protocol.CorbaClientDelegateImpl.request(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 StartServers.main(StartServers.java:34)
Caused by: java.net.ConnectException: Connection refused: connect
    at sun.nio.ch.Net.connect0(Native Method)
    at sun.nio.ch.Net.connect(Unknown Source)
    at sun.nio.ch.Net.connect(Unknown Source)
    at sun.nio.ch.SocketChannelImpl.connect(Unknown Source)
    at java.nio.channels.SocketChannel.open(Unknown Source)
    at com.sun.corba.se.impl.transport.DefaultSocketFactoryImpl.createSocket(Unknown Source)
    ... 12 more

person CodyBugstein    schedule 02.11.2015    source источник


Ответы (1)


Пользователь Reimus недавно опубликовал ответ, который, как я сообщил, не работает. Оказывается, он мигал сверхбыстрым сообщением об ошибке, что порт используется. Когда я исправил эту проблему, его оригинальное решение сработало. Реймус, пожалуйста, сделайте репост своего ответа, чтобы я мог принять его. А пока вот его оригинальный ответ:

Бегать

start tnameserv -ORBInitialPort 1051

Убедитесь, что порт 1051 еще не используется для чего-то еще. Тебе следует увидеть

TNameserv

person CodyBugstein    schedule 02.11.2015