Running (jms) http invokers on 8080
alesj Nov 23, 2008 4:01 AMHow to invoke JMS over port 8080 in JBoss 4.2.3?
With 4.0.5 I was able to do this
client --> JMS:
java.naming.factory.initial=org.jboss.naming.HttpNamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=http://123.456.789:8080/invoker/JNDIFactory
Plus changing something here ..
(this is not enough in 4.2.3)
\deploy\http-invoker.sar\META-INF\jboss-service.xml changing to:
<attribute name="InvokerURLPrefix">http://</attribute> <attribute name="InvokerURLSuffix">:8080/invoker/JMXInvokerServlet</attribute> <attribute name="UseHostName">true</attribute> changed to: <attribute name="InvokerURL">http://123.456.789:8080/invoker/EJBInvokerServlet</attribute>
Google-ing around:
JBoss Messaging over HTTP add to /default/deploy/jboss-messaging.sar file remoting-http-service.xml with content:
<?xml version="1.0" encoding="UTF-8"?> <!-- HTTP Transport Example. $Id: messaging-http-service.xml 2750 2007-06-01 12:45:00Z sergeypk $ --> <server> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.messaging:service=Connector,transport=http" display-name="HTTP transport Connector"> <attribute name="Configuration"> <config> <invoker transport="http"> <attribute name="marshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute> <attribute name="unmarshaller" isParam="true">org.jboss.jms.wireformat.JMSWireFormat</attribute> <attribute name="dataType" isParam="true">jms</attribute> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">8080</attribute> <!-- <attribute name="serverBindPort">4458</attribute> --> <attribute name="leasePeriod">10000</attribute> <attribute name="callbackStore">org.jboss.remoting.callback.CallbackStore</attribute> <attribute name="callbackPollPeriod" isParam="true">100</attribute> </invoker> <handlers> <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler> </handlers> </config> </attribute> </mbean> <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory" name="jboss.messaging.destination:service=HttpConnectionFactory" xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends optional-attribute-name="Connector">jboss.messaging:service=Connector,transport=http</depends> <attribute name="JNDIBindings"> <bindings> <binding>/HttpConnectionFactory</binding> </bindings> </attribute> </mbean> </server>
Gets me this exception
2008-11-21 15:21:05,796 DEBUG [org.jboss.remoting.MicroRemoteClientInvoker] org.jboss.remoting.transport.http.HTTPClientInvoker@1b06a21 connecting 2008-11-21 15:21:05,796 DEBUG [org.jboss.remoting.MicroRemoteClientInvoker] org.jboss.remoting.transport.http.HTTPClientInvoker@1b06a21 connected 2008-11-21 15:21:05,921 ERROR [org.jboss.jms.client.JBossConnectionFactory] Failed to download and/or install client side AOP stack org.jboss.jms.exception.MessagingNetworkFailureException at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:221) at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:202) at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:157) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$getClientAOPStack$aop(ClientConnectionFactoryDelegate.java:227) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.getClientAOPStack(ClientConnectionFactoryDelegate.java) at org.jboss.jms.client.ClientAOPStackLoader.load(ClientAOPStackLoader.java:67) at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:192) at org.jboss.jms.client.JBossConnectionFactory.createConnection(JBossConnectionFactory.java:87) at org.jboss.jms.client.JBossConnectionFactory.createConnection(JBossConnectionFactory.java:82) at com.acme.prevoznik.gui.komunikacija.AvCommunicationSetup.setupQueue(AvCommunicationSetup.java:122) at com.acme.prevoznik.gui.komunikacija.AvCommunicationSetup.<init>(AvCommunicationSetup.java:63) at com.acme.prevoznik.gui.komunikacija.AvCommunicator.send(AvCommunicator.java:53) at com.acme.prevoznik.gui.orodja.AvPosodobiProgram_C$2.doInBackground(AvPosodobiProgram_C.java:397) at com.acme.prevoznik.gui.orodja.AvPosodobiProgram_C$2.doInBackground(AvPosodobiProgram_C.java:405) at org.jdesktop.swingworker.SwingWorker$1.call(SwingWorker.java:276) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at org.jdesktop.swingworker.SwingWorker.run(SwingWorker.java:315) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker. Invalid packet type: 1008813135. Response: Service Unavailable/503. at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:348) at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:137) at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:122) at org.jboss.remoting.Client.invoke(Client.java:1634) at org.jboss.remoting.Client.invoke(Client.java:548) at org.jboss.remoting.Client.invoke(Client.java:536) at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:186) ... 19 more Caused by: java.lang.IllegalArgumentException: Invalid packet type: 1008813135 at org.jboss.jms.wireformat.PacketSupport.createPacket(PacketSupport.java:358) at org.jboss.jms.wireformat.JMSWireFormat.read(JMSWireFormat.java:291) at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:518) at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:307) ... 25 more 2008-11-21 15:21:05,937 ERROR [com.acme.prevoznik.gui.komunikacija.AvCommunicator] Napaka: java.lang.RuntimeException: Failed to download and/or install client side AOP stack
As it's probably conflicting with
/server/default/deploy/jboss-web.deployer/server.xml <Connector port="8080" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
I never dealt with any invokers in details.
But I guess if this was doable in 4.0.5, it's probably still doable in 4.2.3, right?
Just need to find the right configuration ... :-)