Hi Filip,

are you running the ActiveMQ Artemis jms client 2.19.1 and the ActiveMQ
Artemis server with a version different from 2.19.1 in the same JVM?

Regards,
Domenico

On Wed, 10 May 2023 at 18:20, PAS Filip <filip....@sodexo.com.invalid>
wrote:

> Just a small follow-up, using artemis-jms-client instead of
> artemis-jms-client-all seems to be working fine
> There is are no duplicate shaded classes this way when combining it with
> artemis-server.
>
> From: PAS Filip <filip....@sodexo.com.INVALID>
> Sent: Wednesday, May 10, 2023 3:14 PM
> To: users@activemq.apache.org
> Subject: Artemis activemq jms client all incompatible with artemis server
>
> Hello, I'm working on an application where we are migrating activemq to
> artemis activemq. I'm running into an issue when trying to use the artemis
> server and jms client all together on the same classpath. I'm using version
> 2. 19. 1 of the artemis
> ZjQcmQRYFpfptBannerStart
> External sender
> Check the sender and the content are safe before clicking links or open
> attachments.
> ZjQcmQRYFpfptBannerEnd
>
> Hello,
>
>
>
> I'm working on an application where we are migrating activemq to artemis
> activemq.
>
>
>
> I'm running into an issue when trying to use the artemis server and jms
> client all together on the same classpath.
>
>
>
> I'm using version 2.19.1 of the artemis activemq server since it's the
> last version that's compatible with java 8.
>
> According to the docs I should use this version and it should be able to
> connect fine to a remote activemq broker running java 11.
>
> That seems to work correctly however when running the integration test
> suite I'm replacing the old activemq embedded broker with the one from
> artemis activemq and am running into an issue of incompatibility.
>
>
>
> Our integration test suite uses the embedded broker so the artemis server
> is added to the test classpath.
>
> When running the tests the embedded broker seems to start fine:
>
>
>
> [2023-05-10T14:21:58,942|INFO
> |main|org.apache.activemq.artemis.core.server] AMQ221007: Server is now live
>
> [2023-05-10T14:21:58,943|INFO
> |main|org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ
> Artemis Message Broker version 2.19.1 [localhost,
> nodeID=42455503-ef2d-11ed-8947-00090faa0001]
>
>
>
> However when connecting to it I get an error:
>
>
>
> [2023-05-10T14:22:13,517|WARN |Thread-5
> (ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@417a98b5
> )|org.apache.activemq.artemis.core.server<mailto:
> ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl
> $6@417a98b5)|org.apache.activemq.artemis.core.server<mailto:
> ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl
> $6@417a98b5
> )|org.apache.activemq.artemis.core.server%3cmailto:ActiveMQ-server-org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl$6@417a98b5)|org.apache.activemq.artemis.core.server>>]
> AMQ222225: Sending unexpected exception to the client
> java.lang.NoClassDefFoundError: Could not initialize class
> org.apache.activemq.artemis.core.server.cluster.impl.MessageLoadBalancingType
>
>                 at
> org.apache.activemq.artemis.core.postoffice.impl.BindingsImpl.<init>(BindingsImpl.java:68)
>
>                 at
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.createBindings(PostOfficeImpl.java:1989)
>
>                 at
> org.apache.activemq.artemis.core.postoffice.impl.SimpleAddressManager.addMappingInternal(SimpleAddressManager.java:260)
>
>                 at
> org.apache.activemq.artemis.core.postoffice.impl.SimpleAddressManager.addBinding(SimpleAddressManager.java:99)
>
>                 at
> org.apache.activemq.artemis.core.postoffice.impl.WildcardAddressManager.addBinding(WildcardAddressManager.java:95)
>
>                 at
> org.apache.activemq.artemis.core.postoffice.impl.PostOfficeImpl.addBinding(PostOfficeImpl.java:878)
>
>                 at
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:3833)
>
>                 at
> org.apache.activemq.artemis.core.server.impl.ActiveMQServerImpl.createQueue(ActiveMQServerImpl.java:3765)
>
>                 at
> org.apache.activemq.artemis.core.server.impl.ServerSessionImpl.createQueue(ServerSessionImpl.java:740)
>
>                 at
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.slowPacketHandler(ServerSessionPacketHandler.java:377)
>
>                 at
> org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler.onMessagePacket(ServerSessionPacketHandler.java:298)
>
>                 at
> org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:33)
>
>                 at
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
>
>                 at
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:42)
>
>                 at
> org.apache.activemq.artemis.utils.actors.OrderedExecutor.doTask(OrderedExecutor.java:31)
>
>                 at
> org.apache.activemq.artemis.utils.actors.ProcessorBase.executePendingTasks(ProcessorBase.java:65)
>
>                 at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>
>                 at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>
>                 at
> org.apache.activemq.artemis.utils.ActiveMQThreadFactory$1.run(ActiveMQThreadFactory.java:118)
>
>
>
>
>
> There seems to be an incompatibility in the shaded class
> org.apache.activemq.artemis.utils.uri.BeanSupport from commons bean utils.
>
>
>
> I find two classes of org.apache.activemq.artemis.utils.uri.BeanSupport in
> two different jars:
>
>
>
>   *   artemis-commons 2.19.1
>
>   *   artemis-jms-client-all
>
>
>
> In the class Beansupport in the artemis-jms-client-all 2.191 jar I see the
> following import:
>
>
>
> import
> org.apache.activemq.artemis.shaded.org.apache.commons.beanutils.BeanUtilsBean;
>
> import
> org.apache.activemq.artemis.shaded.org.apache.commons.beanutils.Converter;
>
>
>
> In the class Beansupport in the artemis-commons 2.19.1 jar I see the
> following import:
>
>
>
> import org.apache.commons.beanutils.BeanUtilsBean;
>
> import org.apache.commons.beanutils.Converter;
>
>
>
> So what happens when running the tests is that the BeanSupport from jms
> all client is loaded and not from the artemis-server.
>
> This results in the initialization error in the class
> MessageLoadBalancingType.
>
>
>
> I didn't find any mention in the documentation that the activemq jms
> client all is incompatible with the artemis server.
>
> This looks like a bug to me.
>
> For me if the artemis client and server are using a shaded import of
> BeanSupport it would make sense to also use the shaded import for the
> Converter and BeanUtilsBean.
>
>
>
> Can you confirm this? Is there any chance for a bugfix?
>
>
>
> I believe the only option I have to make this work is by not using the jms
> all client jar which is inconvenient to say the least.
>
> There is no BOM (Bill of Materials) and the documentation of the 2.191
> doesn't list the dependencies to import unlike the latest doc which
> mentions all the dependencies to add for the client classpath.
>
>
>
> I'm not sure if this issue exists on the latest version of the artemis
> activemq but it's not an option for me to use that version due to
> incompatibility with java 8.
>
>
>
> Any feedback and or suggestions would be welcome.
>
>
>
> Regards,
>
>
>
> Filip
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

Reply via email to