Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
when features:install activemq-web-console it will try to start an instance of activemq broker with default configuration(like listening port 61616), however by default when start smx we already start an activemq broker, so will encounter exception like
13:48:52,751 | ERROR | l Console Thread | RegisterWebAppVisitorWC | 162 - org.ops4j.pax.web.pax-web-extender-war - 1.0.3 | Registration exception. Skipping.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionPool' defined in ServletContext resource [/WEB-INF/webconsole-embedded.xml]: Cannot resolve reference to bean 'connectionFactory' while setting bean property 'connectionFactory'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionFactory' defined in ServletContext resource [/WEB-INF/webconsole-embedded.xml]: Cannot resolve reference to bean 'brokerURL' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'brokerService' defined in ServletContext resource [/WEB-INF/webconsole-embedded.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in ServletContext resource [/WEB-INF/activemq.xml]: Invocation of init method failed; nested exception is java.io.IOException: Transport Connector could not be registered in JMX: Failed to bind to server socket: tcp://localhost:61616 due to: java.net.BindException: Address already in use
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)[215:org.apache.activemq.activemq-web-console:5.5.0.fuse-00-43]
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:106)[215:org.apache.activemq.activemq-web-console:5.5.0.fuse-00-43]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1317)[215:org.apache.activemq.activemq-web-console:5.5.0.fuse-00-43]
Marcelo Jabali have a great blog[1] to demonstrate how to workaround it by adding some properties to make the activemq-web-console connect to the default embedded broker but not create another one, I think we need have this out-of-box
[1]http://marcelojabali.blogspot.com/2011/08/how-to-enable-activemq-web-console-on.html