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值就可以了,因为这个是从电文发送端传递过来的队列名,我们需要接受电文就需要同发送端的队列名必须相同,这个队列名一般由发送端提供,而我们只需要在配置文件中配置好就可以用了。