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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.