Grails Routing-JMS插件 - 部署到weblogic时出现问题

时间:2016-11-21 06:38:02

标签: grails routing jms grails-plugin grails-2.3

我正在使用Grails插件(routing-jms)将消息排入基于Oracle AQ的队列。它使用tomcat工作正常,但在部署到Weblogic 10.3服务器时抛出异常。

Caused by: java.lang.ClassCastException: weblogic.jms.foreign.IgnoreXAResourceImpl
    at oracle.jms.WebLogicHelper.<clinit>(WebLogicHelper.java:57)
    at oracle.jms.AQjmsConstants.<clinit>(AQjmsConstants.java:310)
    at oracle.jms.AQjmsConnectionFactory.<init>(AQjmsConnectionFactory.java:64)
    at oracle.jms.AQjmsQueueConnectionFactory.<init>(AQjmsQueueConnectionFactory.java:129)
    at oracle.jms.AQjmsFactory.getQueueConnectionFactory(AQjmsFactory.java:160)
    at RoutingJmsGrailsPlugin$_closure1.doCall(RoutingJmsGrailsPlugin.groovy:30)
    at grails.spring.BeanBuilder.invokeBeanDefiningClosure(BeanBuilder.java:755)
    at grails.spring.BeanBuilder.beans(BeanBuilder.java:584)
    at grails.spring.BeanBuilder.invokeMethod(BeanBuilder.java:527)
    at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
    at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
    at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1870)
    at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3155)
    at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518)
    at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:487)
    at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:427)

提供任何帮助。

1 个答案:

答案 0 :(得分:1)

实际上,WebLogic使用类加载器的层次结构(请参阅this article)。似乎同一个类通过两个不同的类加载器加载。你不能在类加载器之间进行转换,因此ClassCastException

重新检查您的依赖项,以排除服务器加载的任何JAR文件,也包括您的应用程序。