activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gary Tully <gary.tu...@gmail.com>
Subject Re: StatisticsBrokerPlugin activation
Date Thu, 16 Sep 2010 13:55:10 GMT
oops, sorry, my bad, so there is a broker factory for xbean but no
transport factory. The correct syntax is to use the vm transport
factory and tell it to use the xbean broker factory using the
brokerConfig attribute:

The brokerURI should be of the form: vm://localhost?brokerConfig=xbean:...
so you still get a vm connection, but the embedded broker is created
using the referenced xml file.

On 16 September 2010 14:27, Don Santillan <donzymeth@gmail.com> wrote:
> Hello Gary,
>
> Here's what I did:
> 1. added activemq.xml to classpath (classes/activemq.xml)
> 2. used xbean to initialize broker
>
> String brokerURI = "xbean:activemq.xml";
> ActiveMQConnectionFactory connectionFactory = new
> ActiveMQConnectionFactory(brokerURI);
> connection = connectionFactory.createConnection();
> connection.start();
>
> 3. run the test.
>
> The test fails on the "connection = connectionFactory.createConnection();"
> line with the error:
> javax.jms.JMSException: Could not create Transport. Reason:
> java.io.IOException: Transport scheme NOT recognized: [xbean]
>   at
> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:35)
>   at
> org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:245)
>   at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:258)
>   at
> org.apache.activemq.ActiveMQConnectionFactory.createActiveMQConnection(ActiveMQConnectionFactory.java:230)
>   at
> org.apache.activemq.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:178)
>   at
> com.babelcentral.tallyho.gateway.messaging.MonitoringTest.initConnection(MonitoringTest.java:94)
>   at
> com.babelcentral.tallyho.gateway.messaging.MonitoringTest.setUp(MonitoringTest.java:37)
>   at junit.framework.TestCase.runBare(TestCase.java:132)
>   at junit.framework.TestResult$1.protect(TestResult.java:110)
>   at junit.framework.TestResult.runProtected(TestResult.java:128)
>   at junit.framework.TestResult.run(TestResult.java:113)
>   at junit.framework.TestCase.run(TestCase.java:124)
>   at junit.framework.TestSuite.runTest(TestSuite.java:232)
>   at junit.framework.TestSuite.run(TestSuite.java:227)
>   at
> org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>   at
> org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>   at
> org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>   at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
> Caused by: java.io.IOException: Transport scheme NOT recognized: [xbean]
>   at
> org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:27)
>   at
> org.apache.activemq.transport.TransportFactory.findTransportFactory(TransportFactory.java:204)
>   at
> org.apache.activemq.transport.TransportFactory.connect(TransportFactory.java:79)
>   at
> org.apache.activemq.ActiveMQConnectionFactory.createTransport(ActiveMQConnectionFactory.java:243)
>   ... 19 more
> Caused by: java.io.IOException: Could not find factory class for resource:
> META-INF/services/org/apache/activemq/transport/xbean
>   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:201)
>   ... 21 more
>
>
> -don
>
>
> Gary Tully wrote:
>>
>> Use the xbean: uri syntax to reference an xml configuration file in
>> your brokerURI, that is the most flexible way to configure an embedded
>> broker.
>>
>> http://activemq.apache.org/broker-configuration-uri.html
>>
>>
>>
>> On 16 September 2010 09:24, Don Santillan <donzymeth@gmail.com> wrote:
>>
>>>
>>> Hello,
>>>
>>> I am using activemq as a dependency in a web app. My web app is deployed
>>> to
>>> a jetty server which is run through maven by issuing "mvn jetty:run".
>>>
>>> Of course, one part of the web app is to create and start a broker. I am
>>> doing this through ActiveMQConnectionFactory (as described at the last
>>> part
>>> of
>>>
>>> http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html,
>>> titled "Using ActiveMQConnectionFactory"):
>>>
>>> String brokerURI = "vm://testBroker?broker.persistent=false";
>>> ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory(brokerURI);
>>> Connection connection = cf.createConnection();
>>> connection.start();
>>>
>>> Now, since I am running my web web app through maven, and activemq is
>>> used
>>> as a library (not as a standalone app), I don't have an activemq.xml
>>> configuration file. So, I don't know where to activate/enable
>>> StatisticsBrokerPlugin as described at
>>> http://activemq.apache.org/statisticsplugin.html:
>>>
>>> <broker ...>
>>>  <plugins>
>>>  statisticsBrokerPlugin/>
>>>  </plugins>
>>> </broker>
>>>
>>> Also, since I am using ActiveMQConnectionFactory to create and start the
>>> broker, I can't take advantage of setting the plugin through
>>> BrokerService:
>>>
>>> BrokerPlugin plugin = new StatisticsBrokerPlugin();
>>> BrokerPlugin[] plugins = {plugin};
>>>
>>> BrokerService broker = new BrokerService();
>>> try {
>>>  broker.addConnector(brokerURI);
>>>  broker.setPlugins(plugins);
>>>  broker.start();
>>> } catch (Exception e) {
>>>  e.printStackTrace();
>>> }
>>>
>>> Now, my questions are:
>>> 1. How will I be able to set the StatisticsBrokerPlugin with the above
>>> scenario?
>>> 2. Is there a way to get a reference to the broker to be able to set the
>>> plugin?
>>> 3. Is there a way to add and use activemq.xml if it is used as a library
>>> and
>>> run through maven? Set in pom.xml?
>>>
>>> Please help. I really need this to work.
>>>
>>> Thanks in advance.
>>>
>>> -don
>>>
>>>
>>
>>
>>
>>
>



-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com

Mime
View raw message