Grails Routing-JMS plugin - Issue while deployment into weblogic

63 Views Asked by At

I am using Grails plugin (routing-jms) to enqueue messages into Oracle AQ based queue. It works fine using tomcat but throwing below exception while deploying into Weblogic 10.3 server.

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.

1

There are 1 best solutions below

0
Muhammad Ali On BEST ANSWER

Actually, WebLogic uses a hierarchy of class loaders (see this article). It seems like the same class is getting loaded via two different class loaders. And you cannot cast between class loaders, hence the ClassCastException.

Re-check your dependencies to exclude any JAR files that are loaded by the server but also by your application.