activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dejan Bosanac <de...@nighttale.net>
Subject Re: Starting WebConsole .war in embedded Jetty and vm:// broker.. JNDI config?
Date Wed, 25 May 2011 08:02:57 GMT
Hi,

if you're using jndi, you need to se connection factory and other params
using jndi (see
http://activemq.apache.org/web-console.html#WebConsole-ConfigureusingJNDI)

-Dwebconsole.jms.url=vm://myapp
-Dwebconsole.type=properties

will work if you're using system properties to set your web console (
http://activemq.apache.org/web-console.html#WebConsole-ConfigureusingSystemProperties
)



Regards
-- 
Dejan Bosanac - http://twitter.com/dejanb
-----------------
The experts in open source integration and messaging - http://fusesource.com
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net

Connect at CamelOne <http://camelone.com/> May 24-26

The Open Source Integration Conference



On Wed, May 25, 2011 at 6:10 AM, neek <neek@nickfenwick.com> wrote:

> Starting WebConsole .war in embedded Jetty.. JNDI config?
>
> Hi there,
>
> I'm getting started using ActiveMQ, have searched this list and googled but
> I'm going in circles.  My environment is a Jetty embedded server, running
> my
> main web app which starts ActiveMQ via jndi.properties.  Now I am trying to
> run the web console, which I'm doing by including the
> activemq-web-console-5.5.0.war as a WebAppContext.  So, I have a single VM
> running Jetty and the two web apps, mine and the webconsole war.
>
> Java VM -> Jetty embedded
>  -> WebAppContext (myapp.war)
>  -> WebAppContext (activemq-web-console-5.5.0.war)
>
> The main web app, with the embedded ActiveMQ, works fine.  I have followed
> http://activemq.apache.org/jndi-support.html which went smoothly, the jndi
> file says:
>
> ===============
> java.naming.factory.initial =
> org.apache.activemq.jndi.ActiveMQInitialContextFactory
>
> java.naming.provider.url = vm://myapp
>
> connectionFactoryNames = connectionFactory
>
> queue.testqueue = myapp.testqueue
> =================
>
> This jndi.properties is in the root of my main app .war, so it's not
> visible
> to the webconsole.war webapp.
>
> So all my Java code is pure JMS with no ActiveMQ specifics.  Nice.  The
> main
> web app can start the queue, publish messages and consumers consume them.
>
> Now, adding the webconsole.war to Jetty, I am having trouble because I'm a
> JNDI newbie.  I have read http://activemq.apache.org/web-console.html but
> am
> not sure which bits of instructions to follow.  The "Starting the Web
> Console in a seperate VM/in a Web-Container" seems good, except it's not in
> a separate VM, it's in the same VM.
>
> I've tried setting the following VM arguments:
> -Dwebconsole.type=jndi
> -Dwebconsole.jms.url=vm://myapp
>
> However the webconsole war fails init:
>
>     [java] WARNING: Failed startup of context
>
> o.e.j.w.WebAppContext{/webconsole,file:/tmp/jetty-0.0.0.0-8080-activemq-web-console-5.5.0.war-_webconsole-any-/webapp/},/downloads/activemq-web-console-5.5.0.war
>     [java] org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'sessionPool' defined in ServletContext resource
> [/WEB-INF/webconsole-jndi.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-jndi.xml]: Instantiation of bean failed;
> nested exception is
> org.springframework.beans.factory.BeanDefinitionStoreException: Factory
> method [public javax.jms.ConnectionFactory
> org.apache.activemq.web.config.JNDIConfiguration.getConnectionFactory()]
> threw exception; nested exception is java.lang.IllegalArgumentException:
> Neither a ConnectionFactory nor a JMS-url were specified
>     [java]     at
>
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
>
> That exception, "IllegalArgumentException: Neither a ConnectionFactory nor
> a
> JMS-url were specified", is confusing, because I'm expecting the
> webconsole.type=jndi to cause it to look everything up via JNDI.  I've a
> feeling the exception message is misleading.  I found a reference to the
> exception in source code:
>
>
> http://activemq.2283324.n4.nabble.com/svn-commit-r751656-in-activemq-trunk-activemq-web-console-src-main-resources-activemq-web-console-sr-td2395670.html
>
> It seems to be thrown inside makeConnectionFactory(jmsUrl, jmsUser,
> jmsPassword) but I've a strong feeling I've simply mis-configured the
> system
> properties that webconsole uses.
>
> I would guess that trying to use a tcp:// url instead of vm:// would not
> help, as the exception says a required configuration property is missing,
> not that a connection couldn't be made.
>
> Just running the webconsole.war in the same Jetty setup, with no -D system
> properties set, starts fine, and I can view the web gui and see no queues
> naturally because it's running its own broker.  I'm stuck with connecting
> it
> to the vm:// broker running in my main app via the correct system
> properties.
>
> Any clues? :)
> Nick
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/Starting-WebConsole-war-in-embedded-Jetty-and-vm-broker-JNDI-config-tp3548843p3548843.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message