I'm hoping for a little advice/guidance/sanity check on the following
problem:
I have a server running Tomcat which basically just serves a small webpage
and a JNLP (webstart) link. The webstart application connects to a separate
ActiveMQ broker on the same server. This uses the default tcp port 61616.
Note: Once the application has started, nothing else goes through Tomcat
(ie, there are no servlets, etc).
We are having some firewall trouble with outside users, so I was looking
into the possibility of using the HTTP transport instead, with the hope
that everyone could connect to port 80... Can TomEE+ be used as both the
webserver and ActiveMQ broker? Ideally I would like to run both on port 80
(is this possible?). If not, the webserver could be 8080 instead.
So far, I have tried setting conf/tomee.xml to:
<tomee>
<Resource id="MyJmsResourceAdapter" type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(http://localhost:80)
ServerUrl = vm://localhost
</Resource>
<Resource id="MyJmsConnectionFactory"
type="javax.jms.ConnectionFactory">
ResourceAdapter = MyJmsResourceAdapter
</Resource>
</tomee>
which gives me the exception in Tomcat's logs:
Caused by: java.io.IOException: Transport scheme NOT recognized: [http]
at
org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
at
org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:196)
at
org.apache.activemq.transport.TransportFactory.bind(TransportFactory.java:116)
at
org.apache.activemq.broker.BrokerService.createTransportConnector(BrokerService.java:2249)
at
org.apache.activemq.broker.BrokerService.addConnector(BrokerService.java:291)
at
org.apache.activemq.broker.DefaultBrokerFactory.createBroker(DefaultBrokerFactory.java:63)
at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
at
org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:54)
at
org.apache.openejb.resource.activemq.ActiveMQ5Factory.createBroker(ActiveMQ5Factory.java:62)
... 26 more
Caused by: java.io.IOException: Could not find factory class for resource:
META-INF/services/org/apache/activemq/transport/http
at
org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.loadProperties(FactoryFinder.java:96)
at
org.apache.activemq.util.FactoryFinder$StandaloneObjectFactory.create(FactoryFinder.java:58)
at
org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:146)
at
org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:193)
... 33 more
Thanks!
Kyle