aspose file tools*
The moose likes BEA/Weblogic and the fly likes Getting the Class Cast Exception: JMSXAConnectionFactory cannot be cast to javax.jms.Destination Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Products » BEA/Weblogic
Bookmark "Getting the Class Cast Exception: JMSXAConnectionFactory cannot be cast to javax.jms.Destination" Watch "Getting the Class Cast Exception: JMSXAConnectionFactory cannot be cast to javax.jms.Destination" New topic
Author

Getting the Class Cast Exception: JMSXAConnectionFactory cannot be cast to javax.jms.Destination

manasa manogna
Greenhorn

Joined: Mar 29, 2011
Posts: 22
Hi

I am trying to establish the JMS connections from one weblogic server JMS to another application server JMS. I configured a connection factory and queue in first application server. I configured the Foreign server also in the first server and specified the connection factory and queues which are created in the second application server as part of the Foreign server configuration. I have few jars like SampleMDB and some others which are having the configuration properties set in them and I deployed them onto my JMS Server.

I have all the related connection factories and queues configured in the second application server also. now, when I am trying to bring the managed server, in log file it is showing the above said error. Please find below the exception it is showing.
Unable to deploy EJB: sampleMDB from sampleMDB.jar:

Error getting JMSServer member info


at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:501)
at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:415)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:75)
at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:67)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1267)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:39)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)

Caused By: Error getting JMSServer member info NestedException Message is :weblogic.jms.client.JMSXAConnectionFactory cannot be cast to javax.jms.Destination
at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.createMDManagers(MessageDrivenBeanInfoImpl.java:1341)
at weblogic.ejb.container.deployer.MessageDrivenBeanInfoImpl.activate(MessageDrivenBeanInfoImpl.java:1092)
at weblogic.ejb.container.deployer.EJBDeployer.activate(EJBDeployer.java:1324)
at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:480)
at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:227)
at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:415)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:75)
at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:67)
at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:1267)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:83)
at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:409)
at weblogic.application.internal.SingleModuleDeployment.activate(SingleModuleDeployment.java:39)
at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
at weblogic.deploy.internal.targetserver.BasicDeployment.activate(BasicDeployment.java:184)
at weblogic.deploy.internal.targetserver.BasicDeployment.activateFromServerLifecycle(BasicDeployment.java:361)
at weblogic.management.deploy.internal.DeploymentAdapter$1.doActivate(DeploymentAdapter.java:51)
at weblogic.management.deploy.internal.DeploymentAdapter.activate(DeploymentAdapter.java:196)
at weblogic.management.deploy.internal.AppTransition$2.transitionApp(AppTransition.java:30)
at weblogic.management.deploy.internal.ConfiguredDeployments.transitionApps(ConfiguredDeployments.java:233)
at weblogic.management.deploy.internal.ConfiguredDeployments.activate(ConfiguredDeployments.java:169)
at weblogic.management.deploy.internal.ConfiguredDeployments.deploy(ConfiguredDeployments.java:123)
at weblogic.management.deploy.internal.DeploymentServerService.resume(DeploymentServerService.java:173)
at weblogic.management.deploy.internal.DeploymentServerService.start(DeploymentServerService.java:89)
at weblogic.t3.srvr.SubsystemRequest.run(SubsystemRequest.java:64)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)


I am not understanding why this is occurring. Please help in this aspect. please find below the config i did in ejb-jar.xml and weblogic-ejb-jar.xml:

<ejb-jar
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
version="2.1">
<enterprise-beans>
<message-driven>
<ejb-name>SampleMDB</ejb-name>
<ejb-class>sample/sample1/sample2/sample3/sample</ejb-class>
<transaction-type>Container</transaction-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>subscriptionDurability</activation-config-property-name>
<activation-config-property-value>NonDurable</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
<activation-config-property-value>dups-ok-acknowledge</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
</activation-config>
<env-entry>
<description> Name of this application. </description>
<env-entry-name>ABCDEFGHIJKL</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>ANY</env-entry-value>
</env-entry>
</message-driven>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>SampleMDB</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
</assembly-descriptor>


</ejb-jar>
and
<weblogic-ejb-jar
xmlns="http://www.bea.com/ns/weblogic/90" xmlns:j2ee="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 http://www.bea.com/ns/weblogic/90/weblogic-ejb-jar.xsd">
<weblogic-enterprise-bean>
<ejb-name>SampleMDB</ejb-name>
<message-driven-descriptor>
<pool>
<max-beans-in-free-pool>200</max-beans-in-free-pool>
<initial-beans-in-free-pool>20</initial-beans-in-free-pool>
</pool>
<destination-jndi-name>MYQCF</destination-jndi-name>
<connection-factory-jndi-name>MYQCF</connection-factory-jndi-name>
</message-driven-descriptor>
<transaction-descriptor>
<trans-timeout-seconds>0</trans-timeout-seconds>
</transaction-descriptor>
</weblogic-enterprise-bean>
</weblogic-ejb-jar>


In the above config, MYQCF is the connection factory which i am referring to the connection factory in second application server. For your info, the connection factories created in both the servers are XA enabled.
Please help as it quite stuck the work to proceed further.
sudipto shekhar
Ranch Hand

Joined: Apr 02, 2008
Posts: 823

Did you check with Oracle guys for any known issues?


Regards, Sud.
SCJP 5 ScjpFAQ JLS
sudipto shekhar
Ranch Hand

Joined: Apr 02, 2008
Posts: 823

As far as I can understand, this is an issue related to configuration.
manasa manogna
Greenhorn

Joined: Mar 29, 2011
Posts: 22
Hi Shekar

Thanks for the response. I got this issue resolved. As you said this is related to configuration problem only. In weblogic ejb jar xml file I misunderstood about destination jndi name as the jndi that points to Connection factory but it actually refers the destination queue. Once I changed this mapping from ACF to queue, it is working fine. Thanks
sudipto shekhar
Ranch Hand

Joined: Apr 02, 2008
Posts: 823

manasa manogna wrote:Hi Shekar

Thanks for the response. I got this issue resolved. As you said this is related to configuration problem only. In weblogic ejb jar xml file I misunderstood about destination jndi name as the jndi that points to Connection factory but it actually refers the destination queue. Once I changed this mapping from ACF to queue, it is working fine. Thanks


I did nothing ! It is you who worked this out.

Njoy and keep posting !! Thanks..
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Getting the Class Cast Exception: JMSXAConnectionFactory cannot be cast to javax.jms.Destination