JMS over HTTP(S) -
carstenrudat Feb 7, 2009 10:12 AMHi all,
I'd like to use JMS over HTTPs. I followed the instructions on http://jboss.org/community/docs/DOC-9631 (except that I configured a https/sslservlet for the public jms connector and I use the all config).
Now, I try to run a simple example
Properties p = new Properties(); p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.HttpNamingContextFactory"); p.put(Context.PROVIDER_URL, "http://localhost:8080/unified-invoker/PrivateJNDIFactory/?return-exception=true"); p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces"); InitialContext ctx = new InitialContext(p); QueueConnectionFactory cf = (QueueConnectionFactory) ctx.lookup("/PrivateServletConnectionFactory"); Queue queue = (Queue) ctx.lookup("queue/testQueue"); // everything is ok but... // now RuntimeException (Failed to download and/or install client side AOP stack) QueueConnection conn = cf.createQueueConnection(); QueueSession session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE); conn.start(); // Set the async listener QueueReceiver recv = session.createReceiver(queue); recv.setMessageListener(new ExListener()); // Send a text msg QueueSender send = session.createSender(queue); TextMessage tm = session.createTextMessage("Text"); send.send(tm); log.info("sendRecvAsync, sent text=" + tm.getText()); send.close(); log.info("End sendRecvAsync");
I run my Client with javaassist.jar, jboss-aop-jdk50-client.jar, jboss-ejb3-client.jar (I tested the EJB over https, too - that works), jboss-j2ee.jar and jboss-messaging-client.jar in classpath.
I get the error:
Failed to download and/or install client side AOP stack java.lang.RuntimeException: Failed to download and/or install client side AOP stack at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:199) at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:101) at org.jboss.jms.client.JBossConnectionFactory.createQueueConnection(JBossConnectionFactory.java:95) at com.genloop.test.client.TimeTellerClient.main(TimeTellerClient.java:54) Caused by: org.jboss.jms.exception.MessagingNetworkFailureException at org.jboss.jms.client.delegate.DelegateSupport.handleThrowable(DelegateSupport.java:240) at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:205) at org.jboss.jms.client.delegate.DelegateSupport.doInvoke(DelegateSupport.java:160) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.org$jboss$jms$client$delegate$ClientConnectionFactoryDelegate$getClientAOPStack$aop(ClientConnectionFactoryDelegate.java:233) at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.getClientAOPStack(ClientConnectionFactoryDelegate.java) at org.jboss.jms.client.ClientAOPStackLoader.load(ClientAOPStackLoader.java:75) at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:192) ... 3 more Caused by: org.jboss.remoting.CannotConnectException: Can not connect http client invoker. at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:334) at org.jboss.remoting.transport.http.HTTPClientInvoker.transport(HTTPClientInvoker.java:136) 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:189) ... 8 more Caused by: java.lang.IllegalArgumentException: Invalid packet type: 1013478509 at org.jboss.jms.wireformat.PacketSupport.createPacket(PacketSupport.java:379) at org.jboss.jms.wireformat.JMSWireFormat.read(JMSWireFormat.java:290) at org.jboss.remoting.transport.http.HTTPClientInvoker.readResponse(HTTPClientInvoker.java:502) at org.jboss.remoting.transport.http.HTTPClientInvoker.useHttpURLConnection(HTTPClientInvoker.java:306) ... 14 more
I just found to entries in JBoss Forum... but the didn't help me.
What am I doing wrong?
Thanks,
Carsten
My config:
JBoss-4.2.3.GA (all config)
JBoss Messaging 1.4.2.GA
server/all/deploy/nat-inverks.sar/META-INF/jboss-service.xml
<?xml version="1.0" encoding="UTF-8"?> <!-- $Id: jboss-service.xml 419 2009-02-06 15:07:31Z carsten $ --> <server> <!-- Expose the Naming service interface via the UnifiedInvoker using private Servlet transport --> <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory" name="jboss:service=proxyfactory,type=unified,transport=servlet,target=naming,loc=private"> <attribute name="TargetName">jboss:service=Naming</attribute> <attribute name="JndiName"></attribute> <attribute name="ExportedInterface">org.jnp.interfaces.Naming</attribute> <attribute name="ClientInterceptors"> <interceptors> <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor> <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor> <interceptor>org.jboss.naming.interceptors.ExceptionInterceptor</interceptor> <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor> </interceptors> </attribute> <depends optional-attribute-name="InvokerName"> jboss:service=invoker,type=unified,transport=servlet,loc=private </depends> </mbean> <!-- Expose the Naming service interface via the UnifiedInvoker using public Servlet transport --> <mbean code="org.jboss.invocation.jrmp.server.JRMPProxyFactory" name="jboss:service=proxyfactory,type=unified,transport=sslservlet,target=naming,loc=public"> <attribute name="TargetName">jboss:service=Naming</attribute> <attribute name="JndiName"></attribute> <attribute name="ExportedInterface">org.jnp.interfaces.Naming</attribute> <attribute name="ClientInterceptors"> <interceptors> <interceptor>org.jboss.proxy.ClientMethodInterceptor</interceptor> <interceptor>org.jboss.proxy.SecurityInterceptor</interceptor> <interceptor>org.jboss.naming.interceptors.ExceptionInterceptor</interceptor> <interceptor>org.jboss.invocation.InvokerInterceptor</interceptor> </interceptors> </attribute> <depends optional-attribute-name="InvokerName"> jboss:service=invoker,type=unified,transport=sslservlet,loc=public </depends> </mbean> <!-- Unified invoker (based on remoting) for invocations via private HTTP with target EJB2 beans or JNDI --> <mbean code="org.jboss.invocation.unified.server.UnifiedInvoker" name="jboss:service=invoker,type=unified,transport=servlet,loc=private"> <depends>jboss:service=TransactionManager</depends> <depends>jboss.remoting:service=connector,transport=servlet,loc=private</depends> </mbean> <!-- Unified invoker (based on remoting) for invocations via public HTTP with target EJB2 beans or JNDI --> <mbean code="org.jboss.invocation.unified.server.UnifiedInvoker" name="jboss:service=invoker,type=unified,transport=sslservlet,loc=public"> <depends>jboss:service=TransactionManager</depends> <depends>jboss.remoting:service=connector,transport=sslservlet,loc=public</depends> </mbean> <!-- Remoting connector for standard EJB2 beans and JNDI that are accessed from within the internal/private network. --> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=servlet,loc=private" display-name="Servlet transport Connector"> <attribute name="Configuration"> <config> <invoker transport="servlet"> <attribute name="dataType" isParam="true">invocation</attribute> <attribute name="marshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationMarshaller</attribute> <attribute name="unmarshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationUnMarshaller</attribute> <attribute name="return-exception" isParam="true">true</attribute> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">8080</attribute> <attribute name="path">unified-invoker/PrivateServerInvokerServlet</attribute> </invoker> <handlers> <handler subsystem="invoker">jboss:service=invoker,type=unified,transport=servlet,loc=private</handler> </handlers> </config> </attribute> </mbean> <!-- Remoting connector for standard EJB2 beans and JNDI that are accessed from the public network network. Please also remember to change the client bind url accordingly so that the EJB calls are directed the public IP --> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=sslservlet,loc=public" display-name="Servlet transport Connector"> <attribute name="Configuration"> <config> <invoker transport="sslservlet"> <attribute name="dataType" isParam="true">invocation</attribute> <attribute name="marshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationMarshaller</attribute> <attribute name="unmarshaller" isParam="true">org.jboss.invocation.unified.marshall.InvocationUnMarshaller</attribute> <attribute name="return-exception" isParam="true">true</attribute> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">8443</attribute> <attribute name="clientConnectAddress">${public.firewall.address}</attribute> <attribute name="clientConnectPort">8443</attribute> <attribute name="path">unified-invoker/PublicServerInvokerServlet</attribute> </invoker> <handlers> <handler subsystem="invoker">jboss:service=invoker,type=unified,transport=sslservlet,loc=public</handler> </handlers> </config> </attribute> </mbean> <!-- Unified invoker (based on remoting) for invocations via private HTTP with target EJB3 beans. --> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=servlet,target=ejb3,loc=private" display-name="EJB3 Servlet transport Connector"> <depends>jboss.aop:service=AspectDeployer</depends> <attribute name="InvokerLocator"> servlet://${jboss.bind.address}:8080/unified-invoker/PrivateEjb3ServerInvokerServlet </attribute> <attribute name="Configuration"> <handlers> <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler> </handlers> </attribute> </mbean> <!-- Unified invoker (based on remoting) for invocations via public HTTP with target EJB3 beans. Please make sure that you also change EJB3 bean's client-bind-url so that it contains the public IP, i.e: <client-bind-url> http://${public.firewall.address}:8080/unified-invoker/PublicEjb3ServerInvokerServlet </client-bind-url> --> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=sslservlet,target=ejb3,loc=public" display-name="EJB3 Servlet SSL transport Connector"> <depends>jboss.aop:service=AspectDeployer</depends> <attribute name="InvokerLocator"> sslservlet://${public.firewall.address}:8443/unified-invoker/PublicEjb3ServerInvokerServlet </attribute> <attribute name="Configuration"> <config> <invoker transport="sslservlet"> <attribute name="serverBindAddress">${jboss.bind.address}</attribute> <attribute name="serverBindPort">8443</attribute> <attribute name="clientConnectAddress">${public.firewall.address}</attribute> <attribute name="clientConnectPort">8443</attribute> <attribute name="path">unified-invoker/PublicEjb3ServerInvokerServlet</attribute> </invoker> <handlers> <handler subsystem="AOP">org.jboss.aspects.remoting.AOPRemotingInvocationHandler</handler> </handlers> </config> </attribute> </mbean> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=servlet,target=jms,loc=private" display-name="JMS Private Servlet transport Connector"> <attribute name="Configuration"> <config> <invoker transport="servlet"> <!-- There should be no reason to change these parameters - warning! Changing them may stop JBoss Messaging working correctly --> <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="numberOfCallRetries" isParam="true">1</attribute> <attribute name="pingFrequency" isParam="true">214748364</attribute> <attribute name="pingWindowFactor" isParam="true">10</attribute> <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute> <attribute name="callbackStore">org.jboss.remoting.callback.BlockingCallbackStore</attribute> <attribute name="unwrapSingletonArrays">true</attribute> <attribute name="path">unified-invoker/PrivateJmsServerInvokerServlet</attribute> <attribute name="return-exception">true</attribute> <attribute name="createUniqueObjectName">true</attribute> <attribute name="useAllParams" isParam="true">true</attribute> <!-- End immutable parameters --> <attribute name="stopLeaseOnFailure" isParam="true">true</attribute> <!-- Periodicity of client pings. Server window by default is twice this figure --> <attribute name="clientLeasePeriod" isParam="true">10000</attribute> <attribute name="validatorPingPeriod" isParam="true">10000</attribute> <attribute name="validatorPingTimeout" isParam="true">5000</attribute> <attribute name="registerCallbackListener">false</attribute> <attribute name="timeout" isParam="true">0</attribute> <!-- Set this to true if you want the servlet transport to block waiting for server->client traffic. Or false if you want it to poll for new traffic periodically. Recommended is blocking --> <attribute name="blockingMode" isParam="true">blocking</attribute> <!-- Timeout for blocking. Only has relevance if blockingMode = blocking --> <attribute name="blockingTimeout" isParam="true">30000</attribute> <!-- The periodicity of polling. Only has relevance if blockingMode = nonblocking --> <!--attribute name="callbackPollPeriod" isParam="true">10000</attribute--> </invoker> <handlers> <handler subsystem="JMS">org.jboss.jms.server.remoting.JMSServerInvocationHandler</handler> </handlers> </config> </attribute> </mbean> <mbean code="org.jboss.remoting.transport.Connector" name="jboss.remoting:service=connector,transport=sslservlet,target=jms,loc=public" display-name="JMS Public Servlet transport Connector"> <attribute name="Configuration"> <config> <invoker transport="sslservlet"> <!-- There should be no reason to change these parameters - warning! Changing them may stop JBoss Messaging working correctly --> <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">8443</attribute> <attribute name="clientConnectAddress">${public.firewall.address}</attribute> <attribute name="clientConnectPort">8443</attribute> <attribute name="numberOfCallRetries" isParam="true">1</attribute> <attribute name="pingFrequency" isParam="true">214748364</attribute> <attribute name="pingWindowFactor" isParam="true">10</attribute> <attribute name="onewayThreadPool">org.jboss.jms.server.remoting.DirectThreadPool</attribute> <attribute name="callbackStore">org.jboss.remoting.callback.BlockingCallbackStore</attribute> <attribute name="unwrapSingletonArrays">true</attribute> <attribute name="path">unified-invoker/PublicJmsServerInvokerServlet</attribute> <attribute name="return-exception">true</attribute> <attribute name="createUniqueObjectName">true</attribute> <attribute name="useAllParams" isParam="true">true</attribute> <!-- End immutable parameters --> <attribute name="stopLeaseOnFailure" isParam="true">true</attribute> <!-- Periodicity of client pings. Server window by default is twice this figure --> <attribute name="clientLeasePeriod" isParam="true">10000</attribute> <attribute name="validatorPingPeriod" isParam="true">10000</attribute> <attribute name="validatorPingTimeout" isParam="true">5000</attribute> <attribute name="registerCallbackListener">false</attribute> <attribute name="timeout" isParam="true">0</attribute> <!-- Set this to true if you want the servlet transport to block waiting for server->client traffic. Or false if you want it to poll for new traffic periodically. Recommended is blocking --> <attribute name="blockingMode" isParam="true">blocking</attribute> <!-- Timeout for blocking. Only has relevance if blockingMode = blocking --> <attribute name="blockingTimeout" isParam="true">30000</attribute> <!-- The periodicity of polling. Only has relevance if blockingMode = nonblocking --> <!--attribute name="callbackPollPeriod" isParam="true">10000</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=ServletConnectionFactory,loc=private" xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends optional-attribute-name="Connector">jboss.remoting:service=connector,transport=servlet,target=jms,loc=private</depends> <depends>jboss.messaging:service=PostOffice</depends> <attribute name="JNDIBindings"> <bindings> <binding>/PrivateServletConnectionFactory</binding> </bindings> </attribute> </mbean> <mbean code="org.jboss.jms.server.connectionfactory.ConnectionFactory" name="jboss.messaging.destination:service=ServletConnectionFactory,loc=public" xmbean-dd="xmdesc/ConnectionFactory-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <depends optional-attribute-name="Connector">jboss.remoting:service=connector,transport=sslservlet,target=jms,loc=public</depends> <depends>jboss.messaging:service=PostOffice</depends> <attribute name="JNDIBindings"> <bindings> <binding>/PublicServletConnectionFactory</binding> </bindings> </attribute> </mbean> </server>
server/all/deploy/nat-invokers.sar/unified-invoker.war/WEB-INF
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>PrivateServerInvokerServlet</servlet-name> <description>The ServerInvokerServlet receives requests via HTTP protocol from within a web container and passes it onto the ServletServerInvoker for processing. </description> <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class> <init-param> <param-name>invokerName</param-name> <param-value>jboss.remoting:service=invoker,transport=servlet</param-value> <description>The servlet server invoker</description> </init-param> <!-- init-param> <param-name>locatorUrl</param-name> <param-value> <![CDATA[servlet://${jboss.bind.address}:8080/unified-invoker/ServerInvokerServlet/?dataType=invocation&marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller]]> </param-value> <description>The servlet server invoker</description> </init-param --> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>PublicServerInvokerServlet</servlet-name> <description>The ServerInvokerServlet receives requests via HTTPs protocol from within a web container and passes it onto the ServletServerInvoker for processing. </description> <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class> <init-param> <param-name>locatorUrl</param-name> <param-value> <![CDATA[sslservlet://${public.firewall.address}:8443/unified-invoker/PublicServerInvokerServlet/?dataType=invocation&marshaller=org.jboss.invocation.unified.marshall.InvocationMarshaller&unmarshaller=org.jboss.invocation.unified.marshall.InvocationUnMarshaller&return-exception=true]]> </param-value> <description>The servlet server invoker</description> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>PrivateEjb3ServerInvokerServlet</servlet-name> <description>The ServerInvokerServlet receives requests via HTTP protocol from within a web container and passes it onto the ServletServerInvoker for processing. </description> <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class> <!-- Pass locatorUrl instead of invokerName because otherwise you end up sharing the same server invoker for org.jboss.invocation and org.jboss.aop type of invocations which you don't wanna do. Worth noting that invokerName is hardcoded and hence you cannot create a separate one that way, hence the use of locatorUrl. --> <init-param> <param-name>locatorUrl</param-name> <param-value>servlet://${jboss.bind.address}:8080/unified-invoker/PrivateEjb3ServerInvokerServlet</param-value> <description>The servlet server invoker</description> </init-param> <!-- init-param> <param-name>invokerName</param-name> <param-value>jboss.remoting:service=invoker,transport=servlet</param-value> <description>The servlet server invoker</description> </init-param --> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>PublicEjb3ServerInvokerServlet</servlet-name> <description>The ServerInvokerServlet receives requests via HTTPS protocol from within a web container and passes it onto the ServletServerInvoker for processing. </description> <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class> <init-param> <param-name>locatorUrl</param-name> <param-value>sslservlet://${public.firewall.address}:8443/unified-invoker/PublicEjb3ServerInvokerServlet</param-value> <description>The ssl servlet server invoker locator url</description> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>PrivateJNDIFactory</servlet-name> <description>A servlet that exposes the JBoss JNDI Naming service stub through http. The return content is a serialized MarshalledValue containg the org.jnp.interfaces.Naming stub. This configuration handles requests for the standard JNDI naming service. </description> <servlet-class>org.jboss.invocation.http.servlet.NamingFactoryServlet</servlet-class> <init-param> <param-name>namingProxyMBean</param-name> <param-value>jboss:service=proxyfactory,type=unified,transport=servlet,target=naming,loc=private</param-value> </init-param> <init-param> <param-name>proxyAttribute</param-name> <param-value>Proxy</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>PublicJNDIFactory</servlet-name> <description>A servlet that exposes the JBoss JNDI Naming service stub through http. The return content is a serialized MarshalledValue containg the org.jnp.interfaces.Naming stub. This configuration handles requests for the standard JNDI naming service. </description> <servlet-class>org.jboss.invocation.http.servlet.NamingFactoryServlet</servlet-class> <init-param> <param-name>namingProxyMBean</param-name> <param-value>jboss:service=proxyfactory,type=unified,transport=sslservlet,target=naming,loc=public</param-value> </init-param> <init-param> <param-name>proxyAttribute</param-name> <param-value>Proxy</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> <servlet> <servlet-name>PrivateJmsServerInvokerServlet</servlet-name> <description>The JmsServerInvokerServlet receives JMS requests via HTTP protocol from within a web container and passes it onto the ServletServerInvoker for processing. </description> <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class> <init-param> <param-name>locatorUrl</param-name> <param-value> <![CDATA[servlet://${jboss.bind.address}:8080/unified-invoker/PrivateJmsServerInvokerServlet/?dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&pingFrequency=214748364&pingWindowFactor=10&stopLeaseOnFailure=true&clientLeasePeriod=10000&validatorPingPeriod=10000&validatorPingTimeout=5000&timeout=0&blockingMode=blocking&blockingTimeout=30000&useAllParams=true]]> </param-value> <description>The servlet server invoker</description> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>PublicJmsServerInvokerServlet</servlet-name> <description>The JmsServerInvokerServlet receives JMS requests via HTTP protocol from within a web container and passes it onto the ServletServerInvoker for processing. </description> <servlet-class>org.jboss.remoting.transport.servlet.web.ServerInvokerServlet</servlet-class> <init-param> <param-name>locatorUrl</param-name> <param-value> <![CDATA[sslservlet://${public.firewall.address}:8443/unified-invoker/PublicJmsServerInvokerServlet/?dataType=jms&marshaller=org.jboss.jms.wireformat.JMSWireFormat&unmarshaller=org.jboss.jms.wireformat.JMSWireFormat&numberOfCallRetries=1&pingFrequency=214748364&pingWindowFactor=10&stopLeaseOnFailure=true&clientLeasePeriod=10000&validatorPingPeriod=10000&validatorPingTimeout=5000&timeout=0&blockingMode=blocking&blockingTimeout=30000&useAllParams=true]]> </param-value> <description>The servlet server invoker</description> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>PrivateServerInvokerServlet</servlet-name> <url-pattern>/PrivateServerInvokerServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PublicServerInvokerServlet</servlet-name> <url-pattern>/PublicServerInvokerServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PrivateEjb3ServerInvokerServlet</servlet-name> <url-pattern>/PrivateEjb3ServerInvokerServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PublicEjb3ServerInvokerServlet</servlet-name> <url-pattern>/PublicEjb3ServerInvokerServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PrivateJNDIFactory</servlet-name> <url-pattern>/PrivateJNDIFactory/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PublicJNDIFactory</servlet-name> <url-pattern>/PublicJNDIFactory/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PublicJmsServerInvokerServlet</servlet-name> <url-pattern>/PublicJmsServerInvokerServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>PrivateJmsServerInvokerServlet</servlet-name> <url-pattern>/PrivateJmsServerInvokerServlet/*</url-pattern> </servlet-mapping> </web-app>