[ https://issues.apache.org/jira/browse/ARTEMIS-1783?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jiri Daněk updated ARTEMIS-1783: -------------------------------- Priority: Trivial (was: Critical) > Exception in thread "main" java.lang.BootstrapMethodError: > java.lang.NoClassDefFoundError: com/google/common/base/Supplier > -------------------------------------------------------------------------------------------------------------------------- > > Key: ARTEMIS-1783 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1783 > Project: ActiveMQ Artemis > Issue Type: Bug > Components: Broker > Affects Versions: 2.5.0 > Reporter: Jiri Daněk > Priority: Trivial > > When using my program cli-artemis-jms at > https://github.com/rh-messaging/cli-java, which depends on > activemq-artemis-jms-client, I get the following stack trace > {noformat} > junit5(?) $ java -jar systemtests/client_executable/cli-artemis-jms.jar > receiver --address test --log-msgs json --count 0 > Exception in thread "main" java.lang.BootstrapMethodError: > java.lang.NoClassDefFoundError: com/google/common/base/Supplier > at > org.apache.activemq.artemis.core.message.impl.CoreMessageObjectPools.<init>(CoreMessageObjectPools.java:26) > at > org.apache.activemq.artemis.core.protocol.ClientPacketDecoder.<init>(ClientPacketDecoder.java:36) > at > org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.createPacketDecoder(ActiveMQClientProtocolManager.java:520) > at > org.apache.activemq.artemis.core.protocol.core.impl.ActiveMQClientProtocolManager.connect(ActiveMQClientProtocolManager.java:412) > at > org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.establishNewConnection(ClientSessionFactoryImpl.java:1273) > at > org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnection(ClientSessionFactoryImpl.java:891) > at > org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.getConnectionWithRetry(ClientSessionFactoryImpl.java:795) > at > org.apache.activemq.artemis.core.client.impl.ClientSessionFactoryImpl.connect(ClientSessionFactoryImpl.java:238) > at > org.apache.activemq.artemis.core.client.impl.ServerLocatorImpl.createSessionFactory(ServerLocatorImpl.java:784) > at > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnectionInternal(ActiveMQConnectionFactory.java:813) > at > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:277) > at > org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory.createConnection(ActiveMQConnectionFactory.java:272) > at > com.redhat.mqe.acc.AccConnectionManager.<init>(AccConnectionManager.java:68) > at > com.redhat.mqe.acc.AccConnectionManagerFactory.make(AccConnectionManagerFactory.java:33) > at > com.redhat.mqe.acc.AccConnectionManagerFactory.make(AccConnectionManagerFactory.java:27) > at com.redhat.mqe.lib.CoreClient.createConnection(CoreClient.java:86) > at > com.redhat.mqe.lib.ReceiverClient.consumeMessage(ReceiverClient.java:170) > at > com.redhat.mqe.lib.ReceiverClient.startClient(ReceiverClient.java:147) > at com.redhat.mqe.lib.Main.main(Main.java:50) > at com.redhat.mqe.acc.Main.main(Main.java:74) > Caused by: java.lang.NoClassDefFoundError: com/google/common/base/Supplier > ... 20 more > Caused by: java.lang.ClassNotFoundException: com.google.common.base.Supplier > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ... 20 more > {noformat} > I get this with artemis-jms-client 2.5.0, but not with artemis-jms-client > 2.4.0. > I believe the guilty commit is in ARTEMIS-1586, "794e56da99456e Refactor to > make more generic", which introduced usage of Google Guava, without adding it > to the package's pom file, causing my maven to miss that transitive > dependency when building uberjar. > The command above runs when triggered from Intellij IDE, where the dependency > is on classpath, for some reason. > Workaround is easy, add Guava to dependencies of your own program which is > using the artemis jms library. -- This message was sent by Atlassian JIRA (v7.6.3#76005)