activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Martin <dmar...@sis.tv>
Subject RE: Invoking JMS API with JMS 2.0, ActiveMQ and osgi (karaf)
Date Wed, 17 Apr 2019 08:02:58 GMT
A possible option is to use the QPID JMS driver - this is a v2.0 driver - with Active MQ v5.
It uses AMQP to communicate with Active MQ instead of Openwire.

-----Original Message-----
From: cooshal <kushal.gautam@gmail.com>
Sent: 17 April 2019 08:32
To: users@activemq.apache.org
Subject: Invoking JMS API with JMS 2.0, ActiveMQ and osgi (karaf)

I have a scenario where I cannot switch to Artemis right now. And following up with several
posts, I understood that it gets tricky for ActiveMQ to communicate with JMS 2.0.

Because of some limitations in Jolokia api (https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Factivemq.2283324.n4.nabble.com%2FIs-it-possible-to-retrieve-more-than-400-messages-from-ActiveMQ-queue-via-Jolokia-API-td4750285.html&amp;data=02%7C01%7Cdmartin%40sis.tv%7C399197d4959c4a74901608d6c3086dae%7C629ba906d77e4dc6acf3d71375b281ea%7C0%7C0%7C636910838304834479&amp;sdata=oO%2Fikd2qhYKBx9Vy35gOVCVeDVn1mzwmZkfLFAG3zbs%3D&amp;reserved=0),
I switched to JMS API to browse my queues. This works perfectly fine and gave the intended
results when deployed as an standalone application, as I have included activemq-client as
one of the dependencies:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-client</artifactId>
    <version>5.12.1</version>
    <type>jar</type>
</dependency>

I tried deploying similar implementation in Karaf, by creating connection factory as:

ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
                "tcp://localhost:61616");

this failed because:
1. activemq-client requires JMS 1.x
2. my karaf container has JMS 2.0

Thus, I opted to use my pooled connection factory in the osgi bundle as:

e.g. my blueprint configuration; where jms/consumer is already available in the service registry

<reference id="jmsConnectionFactory" interface="javax.jms.ConnectionFactory"
filter="(osgi.jndi.service.name=jms/consumer)" availability="mandatory" />

A fragment of my code in creating the connection is as:

brokerConnection = connectionFactory.createConnection();

session = this.createSession(brokerConnection);

brokerConnection.start();

until this point, brokerConnection and session are not null.

Queue queue = session.createQueue("test.queue");
queueBrowser = session.createBrowser(queue);

>From this point on, I get a NullPointerException as:

java.lang.NullPointerException
at
org.apache.activemq.ActiveMQSession.createQueue(ActiveMQSession.java:1335)
at
org.apache.activemq.jms.pool.PooledSession.createQueue(PooledSession.java:197)
at test.mbean.getBrokerEntries(BrokerMBean.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor27.invoke(Unknown Source) at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:112)
at
com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:46)
at
com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:237)
at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:138)
at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:252)
at javax.management.StandardMBean.invoke(StandardMBean.java:405)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)
at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:98)
at org.jolokia.handler.ExecHandler.doHandleRequest(ExecHandler.java:40)
at
org.jolokia.handler.JsonRequestHandler.handleRequest(JsonRequestHandler.java:89)
at
org.jolokia.backend.MBeanServerExecutorLocal.handleRequest(MBeanServerExecutorLocal.java:109)
at
org.jolokia.backend.MBeanServerHandler.dispatchRequest(MBeanServerHandler.java:159)
at
org.jolokia.backend.LocalRequestDispatcher.dispatchRequest(LocalRequestDispatcher.java:99)
...

I am not sure what went wrong here. Any inputs would be very helpful.

Thank you.




--
Sent from: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Factivemq.2283324.n4.nabble.com%2FActiveMQ-User-f2341805.html&amp;data=02%7C01%7Cdmartin%40sis.tv%7C399197d4959c4a74901608d6c3086dae%7C629ba906d77e4dc6acf3d71375b281ea%7C0%7C0%7C636910838304834479&amp;sdata=fuJLxX2DJZ%2BjJdvt1WrlLkof3E9MIXfOucgLCBBpIFQ%3D&amp;reserved=0

________________________________

Sports Information Services Limited. Registered Office: Whitehall Avenue, Kingston, Milton
Keynes, Buckinghamshire, MK10 0AX. Company No. 4243307.

The information in this email (which includes any files transmitted with it) is confidential
and is intended for the addressee only. Unauthorized recipients are required to maintain confidentiality.
If you have received this email in error please notify the sender immediately, destroy any
copies and delete it from your computer system.

________________________________


Mime
View raw message