You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "Andy Wilkinson (Jira)" <ji...@apache.org> on 2021/10/29 16:53:00 UTC
[jira] [Created] (ARTEMIS-3546) ClassNotFoundException:
javax.json.JsonValue when creating an ActiveMQConnectionFactory using
artemis-jakarta-client-all
Andy Wilkinson created ARTEMIS-3546:
---------------------------------------
Summary: 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
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.3.4#803005)