1、Install
cd $serverRoot/profiles/AppSrvSG01/bin(C:/Program Files/IBM/WebSphere/AppServer/profiles/AppSrvSG01/bin)
startServer -server1
cd $serverRoot/samples/bin(C:/Program Files/IBM/WebSphere/AppServer/samples/bin)
install MessageDrivenBeans
2、WAS Config
(1 Create SIBus
Admin Console --> Service Integration --> Service
New --> $NodeName $BusName(APACCNATOW4725Node12SamplesBus)
(2 SIB JMS Connection Factory
Admin Console --> Resources --> JMS Providers --> Default messaging --> Connection Factories --> JMS connection factory --> New
Name: MDBSampleSIBJMSConnectionFactory
JNDI: Sample/JMS/MDB/CF
Desc: MDB Sample SIB JMS ConnectionFactory
Bus: APACCNATOW4725Node12SamplesBus
(3 Create SIB JMS Queue
Admin Console --> Resources --> JMS Providers --> Default messaging --> Destinations --> JMS Queue --> New
Name: Sample.JMS.MDB.QUEUE
JNDI: Sample/JMS/MDB/QUEUE
Desc: MDB Sample Queue (MDB receives a message from this Queue)
Bus : APACCNATOW4725Node12SamplesBus
Queue Name: SIB_MDB_QUEUE
(4 Enable Bus
Servers --> Application servers --> SIB Service
Enable service at server startup
(5 Create a SIB ActivationSpec
Admin Console --> Resources --> JMS Providers --> Default messaging --> Activation Specification --> JMS activation specification --> New
Name: MDBSampleMDBQueue
JNDI: eis/MDBSampleMDBQueue
Desination Type:Queue
Destination JNDI name: Sample/JMS/MDB/QUEUE
Message Producer:
Message Consumer:
1) EJB configuration
Enterprise Application project :MDBSampleEAR
EJB Project: MDBSampleMDB
Dynamic Web Project:MDBSampleWeb
Application Client project:MDBSampleClient
2) Enterprise Application Project:
add modules:MDBSampleMDB&MDBSampleWeb
add project utility jar:MDBSampleClient
3) MDBSampleMDB
New JMSMDBSampleMDBBean(Message Driver Bean)
ejb-jar.xml
Bean --> add MDBSampleMDBQueue
JCA Adatper:
ActivationSpec JNDI Name:eis/MDBSampleMDBQueue
Reference -- > add Environment Resource
ConnectionFactory
Name : jms/mdb/ConnectionFactory
Type : javax.jms.ConnectionFactory
JNDI : Sample/JMS/MDB/CF
Authentication : Application
Queue
Name : jms/mdb/Queue
Type : javax.jms.Queue
JNDI : Sample/JMS/MDB/QUEUE
Authentication : Application
解决的问题:
[8/27/09 10:02:02:287 CST] 00000011 EJBContainerI E WSVR0062E: Unable to start EJB, MDBSampleEAR#MDBSampleMDB.jar#MDBSampleMDBQueue: javax.resource.ResourceException: com.ibm.ejs.jms.listener.MDBException: Creation of MDB MDBSampleMDBQueue unable to find ListenerPort 'null'
at com.ibm.ejs.container.MDBHomeBean.activateEndpoint(MDBHomeBean.java:152)
at com.ibm.ejs.container.EJSContainer.loadBeanMetaData(EJSContainer.java:1614)
at com.ibm.ejs.container.HomeOfHomes.loadBeanMetaData(HomeOfHomes.java:664)
at com.ibm.ejs.container.HomeRecord.getHomeAndInitialize(HomeRecord.java:458)
at com.ibm.ejs.container.EJSContainer.getHomeWrapperCommon(EJSContainer.java:1239)
at com.ibm.ejs.container.EJSContainer.getHomeInstance(EJSContainer.java:1148)
at com.ibm.ejs.container.EJSContainer.startBean(EJSContainer.java:1134)
at com.ibm.ws.runtime.component.EJBContainerImpl.startBean(EJBContainerImpl.java:3212)
at com.ibm.ws.runtime.component.EJBContainerImpl.install(EJBContainerImpl.java:2684)
at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3419)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1019)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1028)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:539)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:724)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:683)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1366)
at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1012)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:233)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:167)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1249)
at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:901)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:817)
at com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:139)
at com.ibm.ws.management.connector.rmi.RMIConnectorService.invoke(RMIConnectorService.java:176)
at com.ibm.ws.management.connector.rmi._RMIConnectorService_Tie.invoke(_RMIConnectorService_Tie.java:362)
at com.ibm.ws.management.connector.rmi._RMIConnectorService_Tie._invoke(_RMIConnectorService_Tie.java:133)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:608)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:461)
at com.ibm.rmi.iiop.ORB.process(ORB.java:432)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1728)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2229)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:65)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
Caused by: com.ibm.ejs.jms.listener.MDBException: Creation of MDB MDBSampleMDBQueue unable to find ListenerPort 'null'
at com.ibm.ejs.jms.listener.MDBListenerManagerImpl.create(MDBListenerManagerImpl.java:305)
at com.ibm.ejs.container.MDBHomeBean.activateEndpoint(MDBHomeBean.java:147)
at com.ibm.ejs.container.EJSContainer.loadBeanMetaData(EJSContainer.java:1614)
at com.ibm.ejs.container.HomeOfHomes.loadBeanMetaData(HomeOfHomes.java:664)
at com.ibm.ejs.container.HomeRecord.getHomeAndInitialize(HomeRecord.java:458)
at com.ibm.ejs.container.EJSContainer.getHomeWrapperCommon(EJSContainer.java:1239)
at com.ibm.ejs.container.EJSContainer.getHomeInstance(EJSContainer.java:1148)
at com.ibm.ejs.container.EJSContainer.startBean(EJSContainer.java:1134)
at com.ibm.ws.runtime.component.EJBContainerImpl.startBean(EJBContainerImpl.java:3212)
at com.ibm.ws.runtime.component.EJBContainerImpl.install(EJBContainerImpl.java:2684)
at com.ibm.ws.runtime.component.EJBContainerImpl.start(EJBContainerImpl.java:3419)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.start(ApplicationMgrImpl.java:1019)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.fireDeployedObjectStart(DeployedApplicationImpl.java:1028)
at com.ibm.ws.runtime.component.DeployedModuleImpl.start(DeployedModuleImpl.java:539)
at com.ibm.ws.runtime.component.DeployedApplicationImpl.start(DeployedApplicationImpl.java:724)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:683)
at com.ibm.ws.runtime.component.ApplicationMgrImpl.startApplication(ApplicationMgrImpl.java:1161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:60)
at java.lang.reflect.Method.invoke(Method.java:391)
at javax.management.modelmbean.RequiredModelMBean.invokeMethod(RequiredModelMBean.java:1366)
at javax.management.modelmbean.RequiredModelMBean.invoke(RequiredModelMBean.java:1012)
at mx4j.server.interceptor.InvokerMBeanServerInterceptor.invoke(InvokerMBeanServerInterceptor.java:233)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
at mx4j.server.interceptor.SecurityMBeanServerInterceptor.invoke(SecurityMBeanServerInterceptor.java:86)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
at mx4j.server.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:128)
at mx4j.server.interceptor.ContextClassLoaderMBeanServerInterceptor.invoke(ContextClassLoaderMBeanServerInterceptor.java:167)
at mx4j.server.MX4JMBeanServer.invoke(MX4JMBeanServer.java:1249)
at com.ibm.ws.management.AdminServiceImpl$1.run(AdminServiceImpl.java:901)
at com.ibm.ws.security.util.AccessController.doPrivileged(AccessController.java:118)
at com.ibm.ws.management.AdminServiceImpl.invoke(AdminServiceImpl.java:817)
at com.ibm.ws.management.connector.AdminServiceDelegator.invoke(AdminServiceDelegator.java:139)
at com.ibm.ws.management.connector.rmi.RMIConnectorService.invoke(RMIConnectorService.java:176)
at com.ibm.ws.management.connector.rmi._RMIConnectorService_Tie.invoke(_RMIConnectorService_Tie.java:362)
at com.ibm.ws.management.connector.rmi._RMIConnectorService_Tie._invoke(_RMIConnectorService_Tie.java:133)
at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:608)
at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:461)
at com.ibm.rmi.iiop.ORB.process(ORB.java:432)
at com.ibm.CORBA.iiop.ORB.process(ORB.java:1728)
at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2229)
at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:65)
at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:95)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1332)
设置Bean的activication speccific JNDI or listener port.