1 回答
TA贡献1786条经验 获得超13个赞
您遇到的问题是 Spring 无法实例化@Autowired您指定的类。
它无法实例化这些类的原因是它找不到它们所依赖的类,如堆栈跟踪底部所示:
Caused by: java.lang.NoClassDefFoundError: javax/jms/JMSContext
at java.lang.Class.getDeclaredMethods0(Native Method) ~[na:1.8.0_191]
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) ~[na:1.8.0_191]
at java.lang.Class.getDeclaredMethods(Class.java:1975) ~[na:1.8.0_191]
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:668) ~[spring-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
... 62 common frames omitted
Caused by: java.lang.ClassNotFoundException: javax.jms.JMSContext
at java.net.URLClassLoader.findClass(URLClassLoader.java:382) ~[na:1.8.0_191]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_191]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349) ~[na:1.8.0_191]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_191]
... 66 common frames omitted
如此处所述,这意味着您需要获取可供应用程序加载的 JMS 库。
在您的 pom 中,您没有指定spring-jms要使用的版本,因此您获得的版本可能不包含您需要的库。
您可以更新您的 pom 以获得最新版本,如下所述:
<!-- https://mvnrepository.com/artifact/org.springframework/spring-jms -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jms</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
或者,您可以通过将以下内容添加到您的 pom(在此处找到)来显式包含 JMS 库:
<!-- https://mvnrepository.com/artifact/javax.jms/javax.jms-api -->
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>
希望其中之一将允许 Spring 实例化所有 bean 并启动应用程序。
添加回答
举报