KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > mx4j > examples > remote > rmi > iiop > Server


1 /*
2  * Copyright (C) The MX4J Contributors.
3  * All rights reserved.
4  *
5  * This software is distributed under the terms of the MX4J License version 1.0.
6  * See the terms of the MX4J License in the documentation provided with this software.
7  */

8
9 package mx4j.examples.remote.rmi.iiop;
10
11 import javax.management.Attribute JavaDoc;
12 import javax.management.MBeanServer JavaDoc;
13 import javax.management.MBeanServerFactory JavaDoc;
14 import javax.management.ObjectName JavaDoc;
15 import javax.management.remote.JMXConnectorServer JavaDoc;
16 import javax.management.remote.JMXConnectorServerFactory JavaDoc;
17 import javax.management.remote.JMXServiceURL JavaDoc;
18
19 /**
20  * This example shows the how to setup a JSR 160 connector server over IIOP, the CORBA
21  * protocol.
22  * It is very similar to the simple example also present in these examples, except
23  * that it uses the IIOP protocol instead of native RMI's one, called JRMP.
24  *
25  * @version $Revision: 1.3 $
26  */

27 public class Server
28 {
29    public static void main(String JavaDoc[] args) throws Exception JavaDoc
30    {
31       // The MBeanServer
32
MBeanServer JavaDoc server = MBeanServerFactory.createMBeanServer();
33
34       // Register and start the tnameserv MBean, needed by JSR 160 RMIConnectorServer over IIOP
35
// You can also start the new JDK 1.4 'orbd' daemon, but you should do so externally
36
// as there are no MBeans that wrap it.
37
ObjectName JavaDoc namingName = ObjectName.getInstance("naming:type=tnameserv");
38       server.createMBean("mx4j.tools.naming.CosNamingService", namingName, null);
39       // Standard port for the COS naming service is 900, but that's a restricted port on Unix/Linux systems
40
int namingPort = 1199;
41       server.setAttribute(namingName, new Attribute JavaDoc("Port", new Integer JavaDoc(namingPort)));
42       server.invoke(namingName, "start", null, null);
43
44       String JavaDoc jndiPath = "/jmxconnector";
45       // Note how the JMXServiceURL specifies 'iiop' as protocol for both the
46
// JMXConnectorServer (the first), to indicate the protocol of the JMXConnectorServer,
47
// and for the naming server (the second), to indicate that this is not the rmiregistry
48
// but the COS naming service.
49
JMXServiceURL JavaDoc url = new JMXServiceURL JavaDoc("service:jmx:iiop://localhost/jndi/iiop://localhost:" + namingPort + jndiPath);
50
51       // Create and start the RMIConnectorServer over IIOP
52
JMXConnectorServer JavaDoc connectorServer = JMXConnectorServerFactory.newJMXConnectorServer(url, null, server);
53       connectorServer.start();
54
55       System.out.println("Server up and running");
56    }
57 }
58
Popular Tags