2016-11-21 55 views
1

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

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) 

Appriciate any help。

+0

谢谢...至少有人打扰... –

回答

1

实际上,WebLogic使用类加载器的层次结构(请参阅this article)。似乎同一个班级正在通过两个不同的班级装载机加载。而且你不能在类加载器之间投射,因此ClassCastException

重新检查您的依赖关系以排除由服务器加载但由应用程序加载的任何JAR文件。

+0

似乎最佳.. –