Connexion à un Naming Service (TAO)
Bonjour,
Je développe une IHM qui doit parcourir un Naming Service pour y récupérer et lister tous les objets qui y sont référencés. J'avais dans un premier temps utiliser l' orbd pour mes test (Object Request Broker Daemon). J'arrivais à m'y connecter en local avec le code qui suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
public void browseNs(Address address) {
System.out.println("*** browseNs (" + address + ")");
if (dlm == null) {
System.out.println("*** browseNs : No model to fill (dlm = null)");
return; // no model to fill
}
String port = address.getPort() + "";
String ip = address.getIp();
String[] myOrbArgs =
{ "-ORBInitRef", "NameService=corbaloc::" + ip + ":" + port + "/NameService" };
try {
/** create and initialize the ORB */
ORB orb = ORB.init(myOrbArgs, null);
/** get the root naming context */
org.omg.CORBA.Object objRef = orb
.resolve_initial_references("NameService");
/**
* Use NamingContextExt instead of NamingContext. This is part of
* the interoperable naming Service.
*/
NamingContextExt ncRef = NamingContextExtHelper.narrow(objRef);
firePropertyChange("CONNECTSTATUS", "NOT CONNECTED", "CONNECTED - " + address);
// List all bindings in the naming context.
BindingListHolder bl = new BindingListHolder();
BindingIteratorHolder blIt = new BindingIteratorHolder();
ncRef.list(1000, bl, blIt);
// Get the array of bindings
Binding bindings[] = bl.value;
System.out.println("*** Found " + bindings.length + " binding(s)");
// This code loops through the bindings and prints the names out.
for (int i = 0; i < bindings.length; i++) {
int lastIx = bindings[i].binding_name.length - 1;
// check to see if this is a naming context
if (bindings[i].binding_type == BindingType.ncontext) {
System.out.println("Context: "
+ bindings[i].binding_name[lastIx].id);
} else {
System.out.println("Object: " +
bindings[i].binding_name[lastIx].id + " - Type: " +
bindings[i].binding_type);
observableImpl = ObservableHelper.narrow(ncRef
.resolve_str(bindings[i].binding_name[lastIx].id));
LoggerConfigListHolder lclh = new LoggerConfigListHolder();
observableImpl.getLoggerConfig(lclh);
extractLoggerFromArray(dlm,lclh);
}
}
}
catch (Exception e) {
System.out.println("ERROR : " + e);
e.printStackTrace(System.out);
}
} |
L'erreur obtenu est :
Citation:
Aug 27, 2009 10:29:59 AM com.sun.corba.se.impl.transport.SocketOrChannelConnectionImpl <init>
WARNING: "IOP00410201: (COMM_FAILURE) Connection failure: socketType: IIOP_CLEAR_TEXT; hostname: 127.0.0.1; port: 1050"
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.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:211)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextExtHelper.narrow(NamingContextExtHelper.java:73)
at com.thalesgroup.fr.observability.logcontroller.corba.LogControllerCorbaReader.browseNs(LogControllerCorbaReader.java:96)
at com.thalesgroup.fr.observability.gui.LoggerConnectBox.tryConnect(LoggerConnectBox.java:324)
at com.thalesgroup.fr.observability.gui.LoggerConnectBox.access$9(LoggerConnectBox.java:321)
at com.thalesgroup.fr.observability.gui.LoggerConnectBox$5.actionPerformed(LoggerConnectBox.java:173)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6041)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5806)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4413)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:177)
at java.awt.Dialog$1.run(Dialog.java:1045)
at java.awt.Dialog$3.run(Dialog.java:1097)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Dialog.show(Dialog.java:1095)
at java.awt.Component.show(Component.java:1422)
at java.awt.Component.setVisible(Component.java:1375)
at java.awt.Window.setVisible(Window.java:806)
at java.awt.Dialog.setVisible(Dialog.java:985)
at com.thalesgroup.fr.observability.gui.LoggerConnectBox.<init>(LoggerConnectBox.java:67)
at com.thalesgroup.fr.observability.gui.LoggerConnectBox.<init>(LoggerConnectBox.java:48)
at com.thalesgroup.fr.observability.gui.LoggerMenuBar$1.actionPerformed(LoggerMenuBar.java:38)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1220)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(BasicMenuItemUI.java:1324)
at javax.swing.JMenuItem.fireMenuDragMouseReleased(JMenuItem.java:568)
at javax.swing.JMenuItem.processMenuDragMouseEvent(JMenuItem.java:465)
at javax.swing.JMenuItem.processMouseEvent(JMenuItem.java:411)
at javax.swing.MenuSelectionManager.processMouseEvent(MenuSelectionManager.java:304)
at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(BasicPopupMenuUI.java:807)
at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Toolkit.java:2360)
at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Toolkit.java:2252)
at java.awt.Toolkit.notifyAWTEventListeners(Toolkit.java:2210)
at java.awt.Component.dispatchEventImpl(Component.java:4311)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2440)
at java.awt.Component.dispatchEvent(Component.java:4243)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Caused by: java.net.ConnectException: Connection refused
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)
... 75 more
J'ai mis en gras la ligne ou ça bug (dans le code et le quote).
Pour info, je lance le Naming Service avec la commande :
Code:
1 2
|
xterm -e "/applis/ace-tao_5.5.1-1.5.1/TAO/orbsvcs/Naming_Service/Naming_Service -m 1"& |
Et la valeur du port $NameServicePort est bien à 1050.
Auriez-vous une idée pour résoudre ce problème ?
Cordialement.