Грешка в 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 публикува отговор преди малко, за който съобщих, че не работи. Оказа се, че мига супер бързо съобщение за грешка, че портът се използва. Когато поправих този проблем, първоначалното му решение проработи. Reimus, моля, публикувайте отново отговора си, за да мога да приема. Дотогава ето оригиналния му отговор:

Бягай

start tnameserv -ORBInitialPort 1051

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

TNameserv

person CodyBugstein    schedule 02.11.2015