天天看點

spring整合activeMQ遇到異常:Error creating bean with name 'connectionFactory'

異常詳情

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionFactory': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.jms.connection.SingleConnectionFactory] from ClassLoader [ParallelWebappClassLoader

context: ROOT

delegate: false

----------> Parent Classloader:

java.net.URLClassLoader@31206beb

]

Caused by: java.lang.IllegalStateException: Failed to introspect Class [org.springframework.jms.connection.SingleConnectionFactory] from ClassLoader [ParallelWebappClassLoader

context: ROOT

Caused by: java.lang.ClassNotFoundException: javax.jms.JMSContext

分析

建立connectionFactory失敗 → 建立SingleConnectionFactory失敗 → 找不到JMSContext類

配置檔案中,建立的是CachingConnectionFactory,它是SingleConnectionFactory的子類,而SingleConnectionFactory類中用到了一個叫JMSContext的類,現在最根本的原因就在于找不到這個類。既然以前同樣的配置沒問題,現在這樣的配置找不到某個類,首先懷疑的就是版本問題。果然,以前的項目中用的spring4,那時候的SingleConnectionFactory并不需要JMSContext;而現在用的spring5,添加了關于這個類的傳回值。JMSContext類屬于javax.jms包,原來用的是1.1版本,更新成2版的即可: