Hi
I have an application which uses message beans, and I am getting the following message when I am trying to deploy the same to Websphere 6.1.2
[7/16/08 9:05:52:558 PDT] 00000017 EJBContainerI E WSVR0040E: addEjbModule failed for EPayEJB.jar [class com.ibm.ws.runtime.component.DeployedEJBModuleImpl]
javax.resource.ResourceException: com.ibm.ejs.jms.listener.MDBException: Creation of MDB EpayOTPMDB unable to find ListenerPort 'null'
++ at com.ibm.ejs.container.MDBHomeBean.activateEndpoint(MDBHomeBean.java:156)++
++ at com.ibm.ws.runtime.component.EJBContainerImpl.install(EJBContainerImpl.java:2967)++
++ at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3646)++
++ at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1295)++
++ at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1129)++
++ at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:567)++
++ at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:814)++
++ at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:948)++
++ at com.ibm.ws.runtime.component.ApplicationMgrImpl$AppInitializer.run(ApplicationMgrImpl.java:2114)++
++ at com.ibm.wsspi.runtime.component.WsComponentImpl$_AsynchInitializer.run(WsComponentImpl.java:340)++
++ at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1510)++
Caused by: com.ibm.ejs.jms.listener.MDBException: Creation of MDB EpayOTPMDB unable to find ListenerPort 'null'
++ at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.create(MDBListenerManagerImpl.java:320)++
++ at com.ibm.ejs.container.MDBHomeBean.activateEndpoint(MDBHomeBean.java:151)++
++ ... 10 more++
The application is deployed to Websphere (6.1.2) on RAD 7.0. The queue is MQ, and I have
- created the respective queue factories under Resources/JMS/Queue connection factories
- created the respective queues under Resources/JMS/Queues
(queues information entered in factory and queue are verified through third party apps and are working good)
- created listener ports under Application servers > server1 > Message Listener Service > Listener Ports (they are up and working fine)
The message bean deployment descriptor is as follows
<message-driven id="EpayOTPMDB">
<ejb-name>EpayOTPMDB</ejb-name>
<ejb-class>com.i21.autopay.ejbgateway.EpayOTPMDBBean</ejb-class>
<messaging-type>javax.jms.MessageListener</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>javax.jms.Queue</message-destination-type>
<activation-config>
<activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
<activation-config-property-value>Auto-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>
<resource-ref>
<description>
</description>
<res-ref-name>EpayOTPCFRef</res-ref-name>
<res-type>javax.jms.QueueConnectionFactory</res-type>
<res-auth>Application</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
</message-driven>
I tried to do the following on Enterprise Applications > EPayEAR to map the EpayOTPRef and to map Message Driven Bean listener bindings
-> Under "References" > "Resource References" section of "Enterprise Applications > EPayEAR", the target JNDI for EpayOTPRef is mapped to the queue connection factory created under JMS. (Used browse button to browse it into)
-> Under "Enterprise
Java Bean Properties" > "Message Driven Bean listener bindings" section of "Enterprise Applications > EPayEAR", the listener port is mentioned as the name of the port under Application servers > server1 > Message Listener Service > Listener Ports)
I clicked OK on both the changes and clicked Apply on "Application servers > server1 > Message Listener Service > Listener Ports > Message Driven Bean listener bindings > EPayEAR" to save the same to the master configuration.
But some how, when I re-open the "Enterprise Applications > EPayEAR", I see both the references and listener bindings wipped out for some reason. If I dont hit "Apply", the values are retained.
In either of the case, if the restart/republish the application on the server, I get the above mentioned exception stack.
Again, I am trying to deploy my application in the local system through IBM RAD 7.0 and using Websphere 6.1.2 as integrated
testing server. The server, its sample applications are up and running with exception to my app which fails because of the above exception.
Am I missing something some where? Your technical expertise in here are much appreciated
Thanks
Unni
[ July 16, 2008: Message edited by: Unnikrishnan Nair ]