1
package org.jboss.remoting.samples.transporter.custom.server;
3
import org.jboss.remoting.detection.jndi.JNDIDetector;
4
import org.jboss.remoting.network.NetworkRegistry;
5
import org.jboss.remoting.samples.transporter.basic.CustomerProcessor;
6
import org.jboss.remoting.samples.transporter.basic.CustomerProcessorImpl;
7
import org.jboss.remoting.transporter.InternalTransporterServices;
8
import org.jboss.remoting.transporter.TransporterServer;
9
import org.w3c.dom.Document;
10
import org.w3c.dom.Element;
11
import org.xml.sax.SAXException;
13
import javax.management.MBeanServer;
14
import javax.management.MBeanServerFactory;
15
import javax.management.ObjectName;
16
import javax.xml.parsers.DocumentBuilderFactory;
17
import javax.xml.parsers.ParserConfigurationException;
18
import java.io.ByteArrayInputStream;
19
import java.io.IOException;
20
import java.net.InetAddress;
23
* @author <a href="mailto:tom.elrod@jboss.com">Tom Elrod</a>
25
public class HTTPServer
27
private TransporterServer server = null;
29
public void start() throws Exception
31
initTransporterServices();
33
Element xmlConfig = getXmlConfig();
35
server = TransporterServer.createTransporterServer(xmlConfig, new CustomerProcessorImpl(),
36
CustomerProcessor.class.getName(), true);
39
private Element getXmlConfig() throws ParserConfigurationException, IOException, SAXException
42
String transport = "http";
43
String host = "localhost";
46
StringBuffer buf = new StringBuffer();
47
buf.append("<?xml version=\"1.0\"?>\n");
48
buf.append("<config>");
49
buf.append("<invoker transport=\"" + transport + "\">");
50
buf.append("<attribute name=\"serverBindAddress\">" + host + "</attribute>");
51
buf.append("<attribute name=\"serverBindPort\">" + port + "</attribute>");
52
buf.append("</invoker>");
53
buf.append("</config>");
54
Document xml = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new ByteArrayInputStream(buf.toString().getBytes()));
55
return xml.getDocumentElement();
67
private void initTransporterServices() throws Exception
70
MBeanServer mbeanServer = MBeanServerFactory.createMBeanServer();
72
NetworkRegistry registry = NetworkRegistry.getInstance();
74
String host = InetAddress.getLocalHost().getHostAddress();
75
JNDIDetector jndiDetector = new JNDIDetector();
76
jndiDetector.setPort(JNDIServer.JNDI_PORT);
77
jndiDetector.setHost(host);
78
jndiDetector.setContextFactory("org.jnp.interfaces.NamingContextFactory");
79
jndiDetector.setURLPackage("org.jboss.naming:org.jnp.interfaces");
82
InternalTransporterServices transporterService = InternalTransporterServices.getInstance();
84
transporterService.setup(mbeanServer,
85
jndiDetector, new ObjectName("remoting:type=Detector,transport=jndi"),
86
registry, new ObjectName("remoting:type=NetworkRegistry"),
89
//TODO: -TME Have to start the detector after setup() call?
95
public static void main(String[] args)
97
HTTPServer server = new HTTPServer();
102
Thread.currentThread().sleep(60000);