最近学习Spring对mdb(消息驱动Bean)的支持,折腾了两个星期,总算搞定了。现将配置总结如下:
一.ejb部分。
mdb类:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)packagecom.mdb.ejb;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.ejb.EJBException;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.ejb.MessageDrivenBean;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.ejb.MessageDrivenContext;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.JMSException;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.Message;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.MessageListener;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.TextMessage;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
/***//**
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*XDoclet-basedMessageDrivenentitybean.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*TogenerateEJBrelatedclassesusingXDoclet:-AddStandardEJBmoduleto
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*XDocletprojectproperties-CustomizeXDocletconfiguration-RunXDoclet
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*Belowarethexdoclet-relatedtagsneededforthisEJB.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*@ejb.beanname="Hello"display-name="NameforHello"description="Description
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*forHello"destination-type="javax.jms.Queue"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*acknowledge-mode="Auto-acknowledge"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*@weblogic.poolmax-beans-in-free-pool="10"initial-beans-in-free-pool="2"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*@weblogic.message-drivendestination-jndi-name="ejb/Hello"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*initial-context-factory="weblogic.jndi.WLInitialContextFactory"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*connection-factory-jndi-name="helloConnectionFactory"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
*/

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicclassHelloBeanimplementsMessageDrivenBean,MessageListener...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
privatestaticfinallongserialVersionUID=1L;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
/***//**TheMessageDrivenContext*/
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MessageDrivenContextcontext;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicHelloBean()...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
super();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//TODOAuto-generatedconstructorstub
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
/***//**
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*Settheassociatedcontext.Thecontainercallsthismethodafterthe
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*instancecreation.<br>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*Theenterprisebeaninstanceshouldstorethereferencetothecontext
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*objectinaninstancevariable.<br>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*Thismethodiscalledwithnotransactioncontext.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
@paramnewContext
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*AMessageDrivenContextinterfacefortheinstance.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
@throwsEJBException
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*Thrownbythemethodtoindicateafailurecausedbya
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*system-levelerror.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
*/

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicvoidsetMessageDrivenContext(MessageDrivenContextnewContext)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
throwsEJBException...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)context
=newContext;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicvoidejbRemove()throwsEJBException...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//TODOAuto-generatedmethodstub
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicvoidonMessage(MessagerecvMsg)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)System.out.println(
"HelloBean接收到的消息:");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
try...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)TextMessagemessage
=(TextMessage)recvMsg;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)System.out.println(message.getText());
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
catch(JMSExceptione)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)e.printStackTrace();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
/***//**
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*AnejbCreatemethodasrequiredbytheEJBspecification.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*Thecontainercallstheinstance?s<code>ejbCreate</code>method
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*immediatelyafterinstantiation.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*@ejb.create-method
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
*/

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicvoidejbCreate()...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

ejb-jar.xml:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)<?xmlversion="1.0"encoding="UTF-8"?>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!DOCTYPEejb-jarPUBLIC"-//SunMicrosystems,Inc.//DTDEnterpriseJavaBeans2.0//EN""http://java.sun.com/dtd/ejb-jar_2_0.dtd">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<ejb-jar>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<description><![CDATA[NoDescription.]]></description>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<display-name>GeneratedbyXDoclet</display-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<enterprise-beans>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Toaddsessionbeansthatyouhavedeploymentdescriptorinfofor,add
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)afiletoyourXDocletmergedirectorycalledsession-beans.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<session></session>markupforthosebeans.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--EntityBeans-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Toaddentitybeansthatyouhavedeploymentdescriptorinfofor,add
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)afiletoyourXDocletmergedirectorycalledentity-beans.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<entity></entity>markupforthosebeans.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--MessageDrivenBeans-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<message-driven>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<description><![CDATA[DescriptionforHello]]></description>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<display-name>NameforHello</display-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<ejb-name>Hello</ejb-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<ejb-class>com.mdb.ejb.HelloBean</ejb-class>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<transaction-type>Container</transaction-type>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<message-driven-destination>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<destination-type>javax.jms.Queue</destination-type>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</message-driven-destination>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</message-driven>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Toaddmessagedrivenbeansthatyouhavedeploymentdescriptorinfofor,add
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)afiletoyourXDocletmergedirectorycalledmessage-driven-beans.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<message-driven></message-driven>markupforthosebeans.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</enterprise-beans>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--Relationships-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--AssemblyDescriptor-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Tospecifyyourownassemblydescriptorinfohere,addafiletoyour
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)XDocletmergedirectorycalledassembly-descriptor.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<assembly-descriptor></assembly-descriptor>markup.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<assembly-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Tospecifyadditionalsecurity-roleelements,addafileinthemerge
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)directorycalledejb-security-roles.xmlthatcontainsthem.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--methodpermissions-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Tospecifyadditionalmethod-permissionelements,addafileinthemerge
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)directorycalledejb-method-permissions.entthatcontainsthem.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--transactions-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Tospecifyadditionalcontainer-transactionelements,addafileinthemerge
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)directorycalledejb-container-transactions.entthatcontainsthem.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--findertransactions-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--messagedestinations-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Tospecifyadditionalmessage-destinationelements,addafileinthemerge
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)directorycalledejb-message-destinations.entthatcontainsthem.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--excludelist-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Tospecifyanexclude-listelement,addafileinthemergedirectory
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)calledejb-exclude-list.xmlthatcontainsit.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</assembly-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</ejb-jar>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

weblogic-ejb-jar.xml:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)<?xmlversion="1.0"encoding="UTF-8"?>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!DOCTYPEweblogic-ejb-jarPUBLIC"-//BEASystems,Inc.//DTDWebLogic8.1.0EJB//EN""http://www.bea.com/servers/wls810/dtd/weblogic-ejb-jar.dtd">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<weblogic-ejb-jar>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<description><![CDATA[GeneratedbyXDoclet]]></description>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<weblogic-enterprise-bean>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<ejb-name>Hello</ejb-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<message-driven-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<pool>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<max-beans-in-free-pool>10</max-beans-in-free-pool>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<initial-beans-in-free-pool>2</initial-beans-in-free-pool>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</pool>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<destination-jndi-name>ejb/Hello</destination-jndi-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<initial-context-factory>weblogic.jndi.WLInitialContextFactory</initial-context-factory>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<connection-factory-jndi-name>helloConnectionFactory</connection-factory-jndi-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</message-driven-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<reference-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</reference-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</weblogic-enterprise-bean>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Toaddenterprisebeansthatyouhavedeploymentdescriptorinfofor,add
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)afiletoyourXDocletmergedirectorycalledweblogic-enterprise-beans.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<weblogic-enterprise-bean></weblogic-enterprise-bean>markupforthosebeans.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Toaddasecurity-role-assignmentsection,add
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)afiletoyourXDocletmergedirectorycalledweblogic-security-role-assignment.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<security-role-assignment></security-role-assignment>markup.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!--
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Toaddarun-as-role-assignmentsection,add
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)afiletoyourXDocletmergedirectorycalledweblogic-run-as-role-assignment.xmlthatcontains
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)the<run-as-role-assignment></run-as-role-assignment>markup.
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
-->
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</weblogic-ejb-jar>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

打包ejb jar并发布。配置文件放在META-INF下。ejb jar 的结构如下:
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

测试代码:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)publicclassEJBtest...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
privatefinalstaticStringNAMING_FACTORY="weblogic.jndi.WLInitialContextFactory";
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//QueueConnectionFactory'sfactoryclass,valuealwaysisjavax.jms.QueueConnectionFactory
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
privatefinalstaticStringQCON_FACTORY="javax.jms.QueueConnectionFactory";
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//MessageDrivenBean'sJNDI-Name
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
privatefinalstaticStringMESSAGE_QUEUE="ejb/Message";
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicstaticvoidmain(String[]args)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)QueueConnectionqCon
=null;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)QueueSenderqSender
=null;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)QueueSessionqSession
=null;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
try...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//CreateaJNDIinitialcontext
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
Propertiesprops=newProperties();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)props.put(Context.INITIAL_CONTEXT_FACTORY,NAMING_FACTORY);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)props.put(Context.PROVIDER_URL,
"t3://localhost:7001");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)InitialContextic
=newInitialContext(props);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//LookupaConnectionFactoryinJNDI
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
QueueConnectionFactoryqCF=(QueueConnectionFactory)ic
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring).lookup(QCON_FACTORY);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//CreateaConnection
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
qCon=qCF.createQueueConnection();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//CreateaSession
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
qSession=qCon.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//LookuptheQueue
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
Queuequeue=(Queue)ic.lookup(MESSAGE_QUEUE);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//CreateaQueueSenderboundtotheQueue
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
qSender=qSession.createSender(queue);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//CreateaTextMessage
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
TextMessagemes=qSession.createTextMessage("HelloWorld!");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//StarttheQueue,sendthemessage
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
qCon.start();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
for(inti=0;i<5;i++)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)qSender.send(mes);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)System.out.println(
"SendingHelloWorld-"+i
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
+"totheJMSQueue");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
catch(NamingExceptione)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)System.out.println(e);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
catch(JMSExceptione)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)e.printStackTrace();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
finally...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
//ReleaseallJMSresources
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
try...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)qCon.close();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)qSender.close();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)qSession.close();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
catch(JMSExceptionje)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)System.out.println(je);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}


二。搭建spring web 项目环境,并配置applicationContext.xml如下:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)<?xmlversion="1.0"encoding="UTF-8"?>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!DOCTYPEbeansPUBLIC"-//SPRING//DTDBEAN//EN"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)"http://www.springframework.org/dtd/spring-beans.dtd"
>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<beans>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<beanid="connectionFactory"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)class
="org.springframework.jndi.JndiObjectFactoryBean">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="jndiName">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<value>helloConnectionFactory</value>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="jndiTemplate">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<reflocal="jndiTemplate"></ref>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</bean>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<beanid="destination"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)class
="org.springframework.jndi.JndiObjectFactoryBean">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="jndiName">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<value>ejb/Hello</value>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="jndiTemplate">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<reflocal="jndiTemplate"></ref>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</bean>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<beanid="jmsTemplate"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)class
="org.springframework.jms.core.JmsTemplate">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="connectionFactory">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<reflocal="connectionFactory"/>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="defaultDestination">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<reflocal="destination"/>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</bean>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<beanid="jndiTemplate"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)class
="org.springframework.jndi.JndiTemplate">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propertyname="environment">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<props>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propkey="java.naming.factory.initial">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)weblogic.jndi.WLInitialContextFactory
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</prop>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<propkey="java.naming.provider.url">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)t3://localhost:7001
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</prop>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</props>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</property>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</bean>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</beans>

web.xml:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)<?xmlversion="1.0"encoding="UTF-8"?>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!DOCTYPEweb-appPUBLIC"-//SunMicrosystems,Inc.//DTDWebApplication2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<web-appid="WebApp_ID">
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<display-name>p_spring</display-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<context-param>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<param-name>contextConfigLocation</param-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<param-value>/WEB-INF/applicationContext.xml</param-value>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</context-param>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<listener>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<listener-class>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)org.springframework.web.context.ContextLoaderListener
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</listener-class>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</listener>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file-list>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file>index.html</welcome-file>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file>index.htm</welcome-file>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file>index.jsp</welcome-file>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file>default.html</welcome-file>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file>default.htm</welcome-file>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<welcome-file>default.jsp</welcome-file>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</welcome-file-list>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</web-app>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

weblogic.xml:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)<?xmlversion="1.0"encoding="UTF-8"?>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<!DOCTYPEweblogic-web-app
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)PUBLIC"-//BEASystems,Inc.//DTDWebApplication8.1//EN"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)"http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"
>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<weblogic-web-app>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<jsp-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<jsp-param>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<param-name>compileFlags</param-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<param-value>-g</param-value>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</jsp-param>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<jsp-param>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<param-name>keepgenerated</param-name>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<param-value>true</param-value>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</jsp-param>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</jsp-descriptor>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
<context-root>p_spring</context-root>
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
</weblogic-web-app>

编写spring调用ejb的测试类:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)packagecom.mdb.ejb;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.JMSException;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.Message;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importjavax.jms.Session;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.apache.commons.logging.Log;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.apache.commons.logging.LogFactory;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.springframework.beans.factory.BeanFactory;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.springframework.beans.factory.xml.XmlBeanFactory;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.springframework.core.io.ClassPathResource;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.springframework.core.io.Resource;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.springframework.jms.core.JmsTemplate;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
importorg.springframework.jms.core.MessageCreator;
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
/***//**
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)*HelloBeanClient,用于发送消息。
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
*/

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicclassHelloBeanClient...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
protectedstaticfinalLoglog=LogFactory.getLog(HelloBeanClient.class);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicstaticvoidmain(String[]args)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)Resourceresource
=newClassPathResource("applicationContext.xml");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)BeanFactoryfactory
=newXmlBeanFactory(resource);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)JmsTemplatejt
=(JmsTemplate)factory.getBean("jmsTemplate");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
try...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
for(inti=0;i<5;++i)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)jt.send(
newMessageCreator()...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
publicMessagecreateMessage(Sessionsession)
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
throwsJMSException...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
returnsession
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring).createTextMessage(
"HelloWorld(MDB),ejb/Hello!,"
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
+System.currentTimeMillis());
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
);
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}
catch(Exceptione)...{
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)e.printStackTrace();
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)log.info(
"成功发送消息!");
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)}

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

至此编码工作全部完成,整个项目的结构如下图:
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
三。在weblogic控制台
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)
配置JMS 文件存储:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

配置JMS 服务器:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

配置JMS 队列:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

配置JMS 连接工厂:

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

四。运行测试代码,运行结果如下:
MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

MyEclipse+Message Driven Bean+ Weblogic8.1(Spring)

相关文章:

  • 2021-12-14
  • 2021-07-28
  • 2022-03-06
  • 2021-05-25
猜你喜欢
  • 2022-01-17
  • 2021-06-22
  • 2021-12-07
  • 2022-02-24
  • 2022-12-23
  • 2022-12-23
  • 2021-12-17
相关资源
相似解决方案