2016-11-21 40 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

似乎最佳.. –