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/19 21:40:00 UTC
[jira] [Closed] (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 closed ARTEMIS-3546.
------------------------------------
Resolution: Fixed
> 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
>
> Time Spent: 6h 20m
> Remaining Estimate: 0h
>
> 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)