You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Clebert Suconic (Jira)" <ji...@apache.org> on 2021/11/11 01:45:00 UTC

[jira] [Updated] (ARTEMIS-3546) ClassNotFoundException: javax.json.JsonValue when creating an ActiveMQConnectionFactory using artemis-jakarta-client-all

     [ https://issues.apache.org/jira/browse/ARTEMIS-3546?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Clebert Suconic updated ARTEMIS-3546:
-------------------------------------
    Fix Version/s: 2.20.0

> ClassNotFoundException: javax.json.JsonValue when creating an ActiveMQConnectionFactory using artemis-jakarta-client-all
> ------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARTEMIS-3546
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-3546
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: JMS
>    Affects Versions: 2.19.0
>            Reporter: Andy Wilkinson
>            Assignee: Clebert Suconic
>            Priority: Major
>             Fix For: 2.20.0
>
>
> As expected, {{artemis-jakarta-client-all}} contains the various {{jakarta.json.\*}} classes from Jakarta EE 9. However, its bytecode still references the {{javax.json.\*}} classes from EE 8. This results in a failure at runtime when creating an {{ActiveMQConnectionFactory}}:
> {noformat}
> Exception in thread "main" java.lang.IllegalStateException: java.lang.NoClassDefFoundError: javax/json/JsonValue
> 	at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:225)
> 	at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:218)
> 	at example.Main.main(Main.java:8)
> Caused by: java.lang.NoClassDefFoundError: javax/json/JsonValue
> 	at org.apache.activemq.artemis.uri.schema.connector.TCPTransportConfigurationSchema.getTransportConfigurations(TCPTransportConfigurationSchema.java:68)
> 	at org.apache.activemq.artemis.uri.schema.serverLocator.TCPServerLocatorSchema.internalNewObject(TCPServerLocatorSchema.java:42)
> 	at org.apache.activemq.artemis.uri.schema.serverLocator.TCPServerLocatorSchema.internalNewObject(TCPServerLocatorSchema.java:33)
> 	at org.apache.activemq.artemis.utils.uri.URISchema.newObject(URISchema.java:86)
> 	at org.apache.activemq.artemis.utils.uri.URISchema.newObject(URISchema.java:30)
> 	at org.apache.activemq.artemis.utils.uri.URIFactory.newObject(URIFactory.java:59)
> 	at org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.newLocator(ServerLocatorImpl.java:333)
> 	at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.setBrokerURL(ActiveMQConnectionFactory.java:243)
> 	at org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.<init>(ActiveMQConnectionFactory.java:223)
> 	... 2 more
> Caused by: java.lang.ClassNotFoundException: javax.json.JsonValue
> 	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
> 	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
> 	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
> 	... 11 more
> {noformat}
> With artemis-jakarta-client-all-2.19.0.jar on the classpath, the failure above was produced by the following main class:
> {code:java}
> package example;
> import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
> public class Main {
> 	
>     public static void main(String[] args) {
>         new ActiveMQConnectionFactory();
>     }
> }
> {code}
> The shaded Johnzon code also has references to {{javax.json.\*}} classes.
> A similar problem exists with {{artemis-jakarta-client}} when upgrading its transitive dependencies to their Jakarta EE 9 versions.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)