JMS电文

message-userinfo.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>

<messages
    xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
    xsi:schemaLocation='/message-def.xsd'
    xmlns="http://www.bsteel.com/Message">
    
    <!-- (接收)用户基本材料信息电文表 -->
    <message no="XSXZ51">
       <string name="procMark" length="1"></string>
       <string name="sysId" length="4"></string>
       <string name="tempVendorNum" length="20"></string>
       <string name="userNum" length="6"></string>
       <int name="versionNum" length="2"></int>
       <string name="chineseUserABBR" length="30"></string>
       <string name="chineseUserName" length="60"></string>
       <string name="englishUserABBR" length="30"></string>
       <string name="englishUserName" length="60"></string>
       <string name="userType" length="4"></string>
       <string name="saleUserType" length="4"></string>
       <string name="companyFlag" length="2"></string>
       <string name="custDisNum" length="4"></string>
       <string name="trade" length="2"></string>
       <string name="stratagemMark" length="1"></string>
       <string name="cancelMark" length="1"></string>
       <string name="relationMark" length="1"></string>
       <string name="countryNameABBR" length="3"></string>
       <string name="userMark" length="3"></string>
       <string name="businNum" length="20"></string>
       <string name="taxNum" length="20"></string>
       <string name="taxNumAdd" length="2"></string>
       <string name="idCard" length="20"></string>
       <string name="corpFlag" length="1"></string>
       <string name="corpCode" length="6"></string>
       <string name="orgCode" length="8"></string>
       <string name="addrRegst" length="6"></string>
       <string name="officeADDR" length="6"></string>
       <string name="dunBrand" length="20"></string>
       <string name="remark" length="60"></string>
       <string name="recRevisorName" length="12"></string>
       <string name="recRevisor" length="6"></string>
       <string name="recReviseTime" length="14"></string>
       <callService 
             service="messageUserService"
             method="receiveUserInfo"
             serviceInterface="com.baosight.baosteel.bsi.message.user.service.MessageUserService">
             <beanArgument
                 type="com.baosight.baosteel.bsi.message.user.model.MessageUserInfo"
                 allFields="true">
             </beanArgument>
       </callService>
    </message>
</messages>

<message no="XSXZ51">中的no是自己随便取的名字,只要和别的电文号不重复就OK,在这个配置文件中配置了所要映射的字段,这些字段对应MessageUserInfo.java文件。
MessageUserInfo.java
public class MessageUserInfo implements Serializable{
	private String procMark;
    private String sysId;
    private String tempVendorNum;
    private String userNum;
    private Long versionNum;
    private String chineseUserABBR;
    private String chineseUserName;
    private String englishUserABBR;
    private String englishUserName;
    private String userType;
    private String saleUserType;
    private String companyFlag;
    private String custDisNum;
    private String trade;
    private String stratagemMark;
    private String cancelMark;
    private String relationMark;
    private String countryNameABBR;
    private String userMark;
    private String businNum;
    private String taxNum;
    private String taxNumAdd;
    private String idCard;
    private String corpFlag;
    private String corpCode;
    private String orgCode;
    private String addrRegst;
    private String officeADDR;
    private String dunBrand;
    private String remark;
    private String recRevisor;
    private String recRevisorName;
    private String recReviseTime;
    
	public MessageUserInfo() {
		super();
	}
    public String toString(){
		return "procMark = "+ procMark + "  sysId =" +sysId +"  tempVendorNum = "+tempVendorNum
		      +"  userNum = "+userNum+"  versionNum = "+versionNum+"  chineseUserABBR = "+chineseUserABBR
		      +"  chineseUserName = "+chineseUserName+"  englishUserABBR = "+englishUserABBR
		      +"  englishUserName = "+englishUserName+"  userType = "+userType+"  saleUserType = "+saleUserType
		      +"  companyFlag = "+companyFlag+"  custDisNum = "+custDisNum+"  trade = "+trade
		      +"  stratagemMark = "+stratagemMark+"  cancelMark = "+cancelMark+"  relationMark = "+relationMark
		      +"  countryNameABBR = "+countryNameABBR+"  userMark = "+userMark+"  businNum = "+businNum
		      +"  taxNum = "+taxNum+"  taxNumAdd = "+taxNumAdd+"  idCard = "+idCard+"  corpFlag = "+corpFlag
		      +"  corpCode = "+corpCode+"  orgCode = "+orgCode+"  addrRegst = "+addrRegst
		      +"  officeADDR = "+officeADDR+"  dunBrand = "+dunBrand+"  remark = "+remark
		      +"  recRevisor = "+recRevisor+"  recRevisorName = "+recRevisorName+"  recReviseTime = "+recReviseTime;
	}
}

在该文件中需要设置所有字段的set和get方法,还要一个完全的构造方法,因为这个文件对应了数据库中的一张表,以便在接受电文时将数据入库。
在message-userinfo.xml配置文件中大家应该看到了service="messageUserService"这段代码,这个是一个实现的接口,而这个需要在spring的配置文件ApplicationContext.xml中配置,代码如下:
<bean  id="messageUserService" parent="baseTransactionProxy">
        <property name="target">
             <bean
                 class="com.baosight.baosteel.bsi.message.user.service.impl.MessageUserServiceImpl">
                 <property name="messageUserDao" ref="messageUserDao"></property>
             </bean>
        </property>
    </bean>
    
    <bean id="messageUserDao"
        class="com.baosight.baosteel.bsi.message.user.dao.impl.MessageUserDaoImpl">
        <property name="sessionFactory">
			<ref bean="sessionFactory" />
		</property>
    </bean>

电文接受具体的实现在MessageUserDaoImpl.java中,这里只是业务逻辑,所以就不必多说,接受电文最关键的是入口,这个也需要在spring的配置文件中配置,代码如下:
<bean name="receiver.user"
			class="com.baosight.common.message.JMSMessageReceiver" singleton="true" init-method="propertiesSetted">
		<property name="queueName" value="recv_bsi_Baosteel_Sales_Test"/>
		<property name="jmsMessageParser" ref="jmsMessageParser"/>
		<property name="messagingServer" ref="messagingServerProxy"/>
		<property name="messageProcessor" ref="messageProcessor"/>
		<property name="logServer" ref="logServer"/>
	</bean>

在这段代码中只需要关注<property name="queueName" value="recv_bsi_Baosteel_Sales_Test"/>中的value值就可以了,因为这个是从电文发送端传递过来的队列名,我们需要接受电文就需要同发送端的队列名必须相同,这个队列名一般由发送端提供,而我们只需要在配置文件中配置好就可以用了。

你可能感兴趣的:(java,spring,xml,jms)