Using the java idl tutorial "hello world" at
http://java.sun.com/docs/books/tutorial/idl/hello/compiling.html :
I start the TAO Naming_Service by using a start up command such as:
E:\ACE_wrappers\TAO\orbsvcs\Naming_Service>naming_service -ORBport
900 -ORBdebug -ORBdebuglevel 1000
I would start up the HelloServer with a command such as:
java HelloServer -ORBInitialPort 900
It appears that the HelloServer client does contact the TAO name server, but
something gets fouled up on the wire.
In particular, the response of the Naming_Service after the HelloServer
client is started:
(323|335) connection from client QED
No match for the given ObjectID
No match for the given ObjectID
No match for the given ObjectID
(335) End of connection, transport handle 280
(323|335) TAO_Server_Connection_Handler::handle_close (280, 1)
The error reported by the java client is:
ERROR: org.omg.CORBA.OBJECT_NOT_EXIST: minor code: -65536 completed: No
org.omg.CORBA.OBJECT_NOT_EXIST: minor code: -65536 completed: No
at java.lang.Class.newInstance0(Native Method)
at java.lang.Class.newInstance(Class.java:239)
at
com.sun.CORBA.iiop.ReplyMessage.getSystemException(ReplyMessage.java:75)
at
com.sun.CORBA.iiop.ClientResponseImpl.getSystemException(ClientResponseImpl.
java:85)
at
com.sun.CORBA.idl.InitialNamingClient.resolve(InitialNamingClient.java:200)
at
com.sun.CORBA.idl.InitialNamingClient.cachedInitialReferences(InitialNamingC
lient.java:275)
at
com.sun.CORBA.idl.InitialNamingClient.resolve_initial_references(InitialNami
ngClient.java:184)
at com.sun.CORBA.idl.ORB.resolve_initial_references(ORB.java:1098)
at HelloServer.main(HelloServer.java:30)
Note that there is a subtle difference between a Naming Server and the Bootstrap
Server (the JavaIDL resolve_initial_references is attempting to talk with the
latter kind). The bootstrap server, which typically listens on port 900, must
be able to respond to a "bootstrap request" (i.e. the request for the object
with the key of INIT). The naming server is more of a standard object server
with typical object keys, that is, the key is a string of bytes of the server's
choosing. If the TAO name server is not designed to be a Bootstrap Server,
merely setting it to listen on port 900 will not be sufficient to get it to
respond correctly to the JavaIDL resolve_initial_references call -- it must also
know how to respond to the special init request like a bootstrap server would.
I don't know enough about TAO to judge whether what you are doing should be
working or not.
Randy Schnier
"John S. Robinson" wrote:
--
Randy Schnier
(remove _NOSPAM_ in address when replying)