Exception Caused by: java.lang.ClassNotFoundException: jakarta.jms.ConnectionFactory

huangapple go评论170阅读模式
英文:

Exception Caused by: java.lang.ClassNotFoundException: jakarta.jms.ConnectionFactory

问题

I want to use a Spring Boot Apache Camel application to get a message on IBM MQ. I am currently setting up the JMS connection, but I receive an error about a class not found. I thought it had something to do with dependencies so I tried a lot of different things, but the error stays the same.

  1. import com.ibm.mq.MQEnvironment;
  2. import com.ibm.msg.client.wmq.common.CommonConstants;
  3. //import org.apache.camel.component.jms.JmsComponent;
  4. import org.slf4j.Logger;
  5. import org.slf4j.LoggerFactory;
  6. import org.springframework.beans.factory.annotation.Value;
  7. import org.springframework.context.annotation.Bean;
  8. import org.springframework.context.annotation.ComponentScan;
  9. import org.springframework.context.annotation.Configuration;
  10. import com.ibm.mq.jms.MQQueueConnectionFactory;
  11. import org.springframework.jms.annotation.EnableJms;
  12. import com.ibm.msg.client.wmq.WMQConstants;
  13. import javax.net.ssl.*;
  14. import java.security.KeyStore;
  15. @EnableJms
  16. @Configuration
  17. public class JmsConfiguration {
  18. private static final Logger LOG = LoggerFactory.getLogger(JmsComponent.class);
  19. private String host = "xxx";
  20. private int port = 4510;
  21. private String queueManager = "xxx";
  22. private String channel = "xxx";
  23. //private String username = "";
  24. //private String password = "";
  25. private String sslCipherSuite = "TLS_RSA_WITH_AES_256_CBC_SHA256";
  26. @Value("${keyStore}")
  27. private String keyStore;
  28. @Value("${keyStorePassword}")
  29. private String keyStorePassword;
  30. @Value("${trustStore}")
  31. private String trustStore;
  32. @Value("${trustStorepassword}")
  33. private String trustStorePassword;
  34. @Bean
  35. public JmsComponent mq() {
  36. JmsComponent jmsComponent = new JmsComponent();
  37. jmsComponent.setConnectionFactory(mqQueueConnectionFactory());
  38. return jmsComponent;
  39. }
  40. @Bean
  41. public MQQueueConnectionFactory mqQueueConnectionFactory() {
  42. MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
  43. mqQueueConnectionFactory.setHostName(host);
  44. try {
  45. //Load trust store
  46. //System.setProperty("javax.net.ssl.trustStore", trustStore);
  47. //System.setProperty("javax.net.ssl.trustStorePassword", trustStorePassword);
  48. //Load keystore
  49. //System.setProperty("javax.net.ssl.keyStore", keyStore);
  50. //System.setProperty("javax.net.ssl.keyStorePassword", keyStorePassword);
  51. //keystore fetch
  52. String keystoreKey = "${keyStorePassword}";
  53. KeyStore keyStore = KeyStore.getInstance("JKS");
  54. keyStore.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("${keyStore}"),
  55. keystoreKey.toCharArray());
  56. // Create key manager
  57. KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance("SunX509");
  58. keyManagerFactory.init(keyStore, keystoreKey.toCharArray());
  59. KeyManager[] km = keyManagerFactory.getKeyManagers();
  60. // Create trust manager
  61. TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance("SunX509");
  62. trustManagerFactory.init(keyStore);
  63. TrustManager[] tm = trustManagerFactory.getTrustManagers();
  64. // Initialize SSLContext
  65. SSLContext sslContext = SSLContext.getInstance("TLSv1");
  66. sslContext.init(km, tm, null);
  67. SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
  68. mqQueueConnectionFactory.setPort(port);
  69. mqQueueConnectionFactory.setChannel(channel);
  70. mqQueueConnectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
  71. mqQueueConnectionFactory.setObjectProperty(WMQConstants.WMQ_SSL_SOCKET_FACTORY, sslSocketFactory);
  72. mqQueueConnectionFactory.setSSLCipherSuite(sslCipherSuite);
  73. mqQueueConnectionFactory.setIntProperty(CommonConstants.WMQ_CONNECTION_MODE, CommonConstants.WMQ_CM_CLIENT);
  74. mqQueueConnectionFactory.setTransportType(CommonConstants.WMQ_CM_BINDINGS);
  75. MQEnvironment.sslSocketFactory = sslSocketFactory;
  76. } catch (Exception e) {
  77. e.printStackTrace();
  78. }
  79. return mqQueueConnectionFactory;
  80. }
  81. }
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>3.0.8</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>nl.test</groupId>
  12. <artifactId>Testapp</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>Testapp</name>
  15. <description>Testapp</description>
  16. <properties>
  17. <java.version>17</java.version>
  18. </properties>
  19. <dependencies>
  20. <dependency>
  21. <groupId>org.apache.camel.springboot</groupId>
  22. <artifactId>camel-spring-boot-starter</artifactId>
  23. <version>4.0.0-M3</version>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-jms</artifactId>
  28. <version>4.3.3.RELEASE</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.apache.camel.springboot</groupId>
  32. <artifactId>camel-jms-starter</artifactId>
  33. <version>4.0.0-M3</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>org.springframework.boot</groupId>
  37. <artifactId>spring-boot-devtools</artifactId>
  38. <scope>runtime</scope>
  39. <optional>true</optional>
  40. </dependency>
  41. <dependency>
  42. <groupId>org.springframework.boot</groupId>
  43. <artifactId>spring-boot-starter-test</artifactId>
  44. <scope>test</scope>
  45. </dependency>
  46. <dependency>
  47. <groupId>com.ibm.mq</groupId>
  48. <artifactId>com.ibm.mq.allclient</artifactId>
  49. <version>9.1.0.5</version>
  50. </dependency>
  51. <dependency>
  52. <groupId>org.apache.logging.log4j</groupId>
  53. <artifactId>log4j-api</artifactId>
  54. <version>2.20.0</version>
  55. </dependency>
  56. <dependency>
  57. <groupId>jakarta.jms</groupId>
  58. <artifactId>jakarta.jms-api</artifactId>
  59. <version>3.0.0</version>
  60. </dependency>
  61. </dependencies>
  62. <build>
  63. <plugins>
  64. <plugin>
  65. <groupId>org.springframework.boot</groupId>
  66. <artifactId>spring-boot-maven-plugin</artifactId>
  67. </plugin>
  68. </plugins>
  69. </build>
  70. </project>

This is the stacktrace:

  1. java.lang.NoClassDefFoundError: jakarta/jms/ConnectionFactory
  2. at java.base/java.lang.Class.getDeclaredFields0(Native Method) ~[na:na]
  3. at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3353) ~[na:na]
  4. <details>
  5. <summary>英文:</summary>
  6. I want to use a Spring Boot Apache Camel application to get a message on IBM MQ. I am currently setting up the JMS connection, but I receive an error about a class not found. I thought it had something to do with dependencies so I tried a lot of different things, but the error stays the same.
  7. ```java
  8. import com.ibm.mq.MQEnvironment;
  9. import com.ibm.msg.client.wmq.common.CommonConstants;
  10. //import org.apache.camel.component.jms.JmsComponent;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Value;
  14. import org.springframework.context.annotation.Bean;
  15. import org.springframework.context.annotation.ComponentScan;
  16. import org.springframework.context.annotation.Configuration;
  17. import com.ibm.mq.jms.MQQueueConnectionFactory;
  18. import org.springframework.jms.annotation.EnableJms;
  19. import com.ibm.msg.client.wmq.WMQConstants;
  20. import javax.net.ssl.*;
  21. import java.security.KeyStore;
  22. @EnableJms
  23. @Configuration
  24. public class JmsConfiguration {
  25. private static final Logger LOG = LoggerFactory.getLogger(JmsComponent.class);
  26. private String host = &quot;xxx&quot;;
  27. private int port = 4510;
  28. private String queueManager = &quot;xxx&quot;;
  29. private String channel = &quot;xxx&quot;;
  30. //private String username = &quot;&quot;;
  31. //private String password = &quot;&quot;;
  32. private String sslCipherSuite = &quot;TLS_RSA_WITH_AES_256_CBC_SHA256&quot;;
  33. @Value(&quot;${keyStore}&quot;)
  34. private String keyStore;
  35. @Value(&quot;${keyStorePassword}&quot;)
  36. private String keyStorePassword;
  37. @Value(&quot;${trustStore}&quot;)
  38. private String trustStore;
  39. @Value(&quot;${trustStorepassword}&quot;)
  40. private String trustStorePassword;
  41. @Bean
  42. public JmsComponent mq() {
  43. JmsComponent jmsComponent = new JmsComponent();
  44. jmsComponent.setConnectionFactory(mqQueueConnectionFactory());
  45. return jmsComponent;
  46. }
  47. @Bean
  48. public MQQueueConnectionFactory mqQueueConnectionFactory() {
  49. MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
  50. mqQueueConnectionFactory.setHostName(host);
  51. try {
  52. //Load trust store
  53. //System.setProperty(&quot;javax.net.ssl.trustStore&quot;, trustStore);
  54. //System.setProperty(&quot;javax.net.ssl.trustStorePassword&quot;, trustStorePassword);
  55. //Load keystore
  56. //System.setProperty(&quot;javax.net.ssl.keyStore&quot;, keyStore);
  57. //System.setProperty(&quot;javax.net.ssl.keyStorePassword&quot;, keyStorePassword);
  58. //keystore fetch
  59. String keystoreKey = &quot;${keyStorePassword}&quot;;
  60. KeyStore keyStore = KeyStore.getInstance(&quot;JKS&quot;);
  61. keyStore.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(&quot;${keyStore}&quot;),
  62. keystoreKey.toCharArray());
  63. // Create key manager
  64. KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(&quot;SunX509&quot;);
  65. keyManagerFactory.init(keyStore, keystoreKey.toCharArray());
  66. KeyManager[] km = keyManagerFactory.getKeyManagers();
  67. // Create trust manager
  68. TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(&quot;SunX509&quot;);
  69. trustManagerFactory.init(keyStore);
  70. TrustManager[] tm = trustManagerFactory.getTrustManagers();
  71. // Initialize SSLContext
  72. SSLContext sslContext = SSLContext.getInstance(&quot;TLSv1&quot;);
  73. sslContext.init(km, tm, null);
  74. SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
  75. mqQueueConnectionFactory.setPort(port);
  76. mqQueueConnectionFactory.setChannel(channel);
  77. mqQueueConnectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
  78. mqQueueConnectionFactory.setObjectProperty(WMQConstants.WMQ_SSL_SOCKET_FACTORY, sslSocketFactory);
  79. mqQueueConnectionFactory.setSSLCipherSuite(sslCipherSuite);
  80. mqQueueConnectionFactory.setIntProperty(CommonConstants.WMQ_CONNECTION_MODE, CommonConstants.WMQ_CM_CLIENT);
  81. mqQueueConnectionFactory.setTransportType(CommonConstants.WMQ_CM_BINDINGS);
  82. MQEnvironment.sslSocketFactory = sslSocketFactory;
  83. } catch (Exception e) {
  84. e.printStackTrace();
  85. }
  86. return mqQueueConnectionFactory;
  87. }
  88. }
  1. &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
  2. &lt;project xmlns=&quot;http://maven.apache.org/POM/4.0.0&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;
  3. xsi:schemaLocation=&quot;http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd&quot;&gt;
  4. &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;
  5. &lt;parent&gt;
  6. &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
  7. &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
  8. &lt;version&gt;3.0.8&lt;/version&gt;
  9. &lt;relativePath/&gt; &lt;!-- lookup parent from repository --&gt;
  10. &lt;/parent&gt;
  11. &lt;groupId&gt;nl.test&lt;/groupId&gt;
  12. &lt;artifactId&gt;Testapp&lt;/artifactId&gt;
  13. &lt;version&gt;0.0.1-SNAPSHOT&lt;/version&gt;
  14. &lt;name&gt;Testapp&lt;/name&gt;
  15. &lt;description&gt;Testapp&lt;/description&gt;
  16. &lt;properties&gt;
  17. &lt;java.version&gt;17&lt;/java.version&gt;
  18. &lt;/properties&gt;
  19. &lt;dependencies&gt;
  20. &lt;dependency&gt;
  21. &lt;groupId&gt;org.apache.camel.springboot&lt;/groupId&gt;
  22. &lt;artifactId&gt;camel-spring-boot-starter&lt;/artifactId&gt;
  23. &lt;version&gt;4.0.0-M3&lt;/version&gt;
  24. &lt;/dependency&gt;
  25. &lt;dependency&gt;
  26. &lt;groupId&gt;org.springframework&lt;/groupId&gt;
  27. &lt;artifactId&gt;spring-jms&lt;/artifactId&gt;
  28. &lt;version&gt;4.3.3.RELEASE&lt;/version&gt;
  29. &lt;/dependency&gt;
  30. &lt;dependency&gt;
  31. &lt;groupId&gt;org.apache.camel.springboot&lt;/groupId&gt;
  32. &lt;artifactId&gt;camel-jms-starter&lt;/artifactId&gt;
  33. &lt;version&gt;4.0.0-M3&lt;/version&gt;
  34. &lt;/dependency&gt;
  35. &lt;dependency&gt;
  36. &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
  37. &lt;artifactId&gt;spring-boot-devtools&lt;/artifactId&gt;
  38. &lt;scope&gt;runtime&lt;/scope&gt;
  39. &lt;optional&gt;true&lt;/optional&gt;
  40. &lt;/dependency&gt;
  41. &lt;dependency&gt;
  42. &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
  43. &lt;artifactId&gt;spring-boot-starter-test&lt;/artifactId&gt;
  44. &lt;scope&gt;test&lt;/scope&gt;
  45. &lt;/dependency&gt;
  46. &lt;dependency&gt;
  47. &lt;groupId&gt;com.ibm.mq&lt;/groupId&gt;
  48. &lt;artifactId&gt;com.ibm.mq.allclient&lt;/artifactId&gt;
  49. &lt;version&gt;9.1.0.5&lt;/version&gt;
  50. &lt;/dependency&gt;
  51. &lt;dependency&gt;
  52. &lt;groupId&gt;org.apache.logging.log4j&lt;/groupId&gt;
  53. &lt;artifactId&gt;log4j-api&lt;/artifactId&gt;
  54. &lt;version&gt;2.20.0&lt;/version&gt;
  55. &lt;/dependency&gt;
  56. &lt;dependency&gt;
  57. &lt;groupId&gt;jakarta.jms&lt;/groupId&gt;
  58. &lt;artifactId&gt;jakarta.jms-api&lt;/artifactId&gt;
  59. &lt;version&gt;3.0.0&lt;/version&gt;
  60. &lt;/dependency&gt;
  61. &lt;/dependencies&gt;
  62. &lt;build&gt;
  63. &lt;plugins&gt;
  64. &lt;plugin&gt;
  65. &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
  66. &lt;artifactId&gt;spring-boot-maven-plugin&lt;/artifactId&gt;
  67. &lt;/plugin&gt;
  68. &lt;/plugins&gt;
  69. &lt;/build&gt;
  70. &lt;/project&gt;

This is the stacktrace:

  1. java.lang.NoClassDefFoundError: jakarta/jms/ConnectionFactory
  2. at java.base/java.lang.Class.getDeclaredFields0(Native Method) ~[na:na]
  3. at java.base/java.lang.Class.privateGetDeclaredFields(Class.java:3353) ~[na:na]
  4. at java.base/java.lang.Class.getDeclaredField(Class.java:2661) ~[na:na]
  5. at org.springframework.boot.context.properties.bind.DefaultBindConstructorProvider$Constructors.isInnerClass(DefaultBindConstructorProvider.java:145) ~[spring-boot-3.0.8.jar:3.0.8]
  6. at org.springframework.boot.context.properties.bind.DefaultBindConstructorProvider$Constructors.getCandidateConstructors(DefaultBindConstructorProvider.java:135) ~[spring-boot-3.0.8.jar:3.0.8]
  7. at org.springframework.boot.context.properties.bind.DefaultBindConstructorProvider$Constructors.getConstructors(DefaultBindConstructorProvider.java:103) ~[spring-boot-3.0.8.jar:3.0.8]
  8. at org.springframework.boot.context.properties.bind.DefaultBindConstructorProvider.getBindConstructor(DefaultBindConstructorProvider.java:55) ~[spring-boot-3.0.8.jar:3.0.8]
  9. at org.springframework.boot.context.properties.ConfigurationPropertiesBean.deduceBindMethod(ConfigurationPropertiesBean.java:328) ~[spring-boot-3.0.8.jar:3.0.8]
  10. at org.springframework.boot.context.properties.ConfigurationPropertiesBeanRegistrar.createBeanDefinition(ConfigurationPropertiesBeanRegistrar.java:93) ~[spring-boot-3.0.8.jar:3.0.8]
  11. at org.springframework.boot.context.properties.ConfigurationPropertiesBeanRegistrar.registerBeanDefinition(ConfigurationPropertiesBeanRegistrar.java:89) ~[spring-boot-3.0.8.jar:3.0.8]
  12. at org.springframework.boot.context.properties.ConfigurationPropertiesBeanRegistrar.register(ConfigurationPropertiesBeanRegistrar.java:61) ~[spring-boot-3.0.8.jar:3.0.8]
  13. at org.springframework.boot.context.properties.ConfigurationPropertiesBeanRegistrar.register(ConfigurationPropertiesBeanRegistrar.java:55) ~[spring-boot-3.0.8.jar:3.0.8]
  14. at java.base/java.lang.Iterable.forEach(Iterable.java:75) ~[na:na]
  15. at org.springframework.boot.context.properties.EnableConfigurationPropertiesRegistrar.registerBeanDefinitions(EnableConfigurationPropertiesRegistrar.java:49) ~[spring-boot-3.0.8.jar:3.0.8]
  16. at org.springframework.context.annotation.ImportBeanDefinitionRegistrar.registerBeanDefinitions(ImportBeanDefinitionRegistrar.java:86) ~[spring-context-6.0.10.jar:6.0.10]
  17. at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.lambda$loadBeanDefinitionsFromRegistrars$1(ConfigurationClassBeanDefinitionReader.java:373) ~[spring-context-6.0.10.jar:6.0.10]
  18. at java.base/java.util.LinkedHashMap.forEach(LinkedHashMap.java:729) ~[na:na]
  19. at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsFromRegistrars(ConfigurationClassBeanDefinitionReader.java:372) ~[spring-context-6.0.10.jar:6.0.10]
  20. at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitionsForConfigurationClass(ConfigurationClassBeanDefinitionReader.java:148) ~[spring-context-6.0.10.jar:6.0.10]
  21. at org.springframework.context.annotation.ConfigurationClassBeanDefinitionReader.loadBeanDefinitions(ConfigurationClassBeanDefinitionReader.java:120) ~[spring-context-6.0.10.jar:6.0.10]
  22. at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:427) ~[spring-context-6.0.10.jar:6.0.10]
  23. at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:287) ~[spring-context-6.0.10.jar:6.0.10]
  24. at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344) ~[spring-context-6.0.10.jar:6.0.10]
  25. at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:115) ~[spring-context-6.0.10.jar:6.0.10]
  26. at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771) ~[spring-context-6.0.10.jar:6.0.10]
  27. at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589) ~[spring-context-6.0.10.jar:6.0.10]
  28. at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) ~[spring-boot-3.0.8.jar:3.0.8]
  29. at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-3.0.8.jar:3.0.8]
  30. at org.springframework.boot.SpringApplication.run(SpringApplication.java:310) ~[spring-boot-3.0.8.jar:3.0.8]
  31. at org.springframework.boot.SpringApplication.run(SpringApplication.java:1304) ~[spring-boot-3.0.8.jar:3.0.8]
  32. at org.springframework.boot.SpringApplication.run(SpringApplication.java:1293) ~[spring-boot-3.0.8.jar:3.0.8]
  33. at nl.rabobank.mqputter.MqPutterApplication.main(MqPutterApplication.java:10) ~[classes/:na]
  34. at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
  35. at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na]
  36. at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.0.8.jar:3.0.8]
  37. Caused by: java.lang.ClassNotFoundException: jakarta.jms.ConnectionFactory
  38. at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na]
  39. at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na]
  40. at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na]
  41. ... 35 common frames omitted

答案1

得分: 4

至少你需要在你的应用程序类路径中包含Jakarta Messaging API的jar包。

你可能还需要升级你的IBM MQ客户端到9.3版本,因为它支持Jakarta Messaging(即jakarta.jms.*中的类)。

英文:

At the very least you need to include the Jakarta Messaging API jar in your application's classpath.

You may also need to upgrade your IBM MQ client to 9.3 as it supports Jakarta Messaging (i.e. classes in jakarta.jms.*).

huangapple
  • 本文由 发表于 2023年7月3日 22:52:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/76605881.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定