SOAP报文转实体类

该博客介绍了如何将SOAP格式的JMS报文转换为Java实体类。首先,需要获取wsdl和xsd文件,然后使用CXF工具生成实体类,并安装配置CXF插件。在遇到缺少@XmlRootElement注解的问题时,需要为实体类添加此注解以完成转换。这个过程涉及到了XML与Java Bean之间的转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目背景

集成系统通过activemq传出SOAP格式的JMS报文,在接受后需将报文转换为相应的实体类。

操作步骤

  1. 首先需要获得生成实体类所需要wsdl文件和xsd文件
    在这里插入图片描述

  2. 用CXF工具生成实体类并将soa文件夹放置项目中
    安装CXF插件
    首先个人本机安装CXF插件,配置CXF环境变量
    CXF插件从下列链接中获取
    链接:https://pan.baidu.com/s/16KEMrCISjp1_6kkJheE_8A
    提取码:enn2

    变量名:CXF_HOME 变量值:D:\cxf\apache-cxf-3.4.4
    Path变量里加:%CXF_HOME%\bin
    根据wsdl生成客户端相关代码
    在wsdl文件所在路径下执行如下cmd指令

# 服务端:
wsdl2java -server -impl -encoding utf-8 xxx.wsdl
# 客户端:
wsdl2java -client -encoding utf-8 xxx.wsdl
3. 新建测试类
package xxx.test;


import xxx.InputParameters;

import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
import java.io.StringReader;

public class test {
   
    public static void main(String[] args) throws Exception {
   
        String message = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ns2:InputParameters xmlns:ns2=\"http://soa.cmcc.com/JMS_BP_SOA_HQ_DistMdmPersonnelSrv\" xmlns=\"http://soa.cmcc.com/MsgHeader\"><ns2:MSGHEADER><SOURCESYSTEMID>MDM</SOURCESYSTEMID><SOURCESYSTEMNAME>集中化主数据系统</SOURCESYSTEMNAME><TOKEN>e2d37924a7acf22523959e237dd23034</TOKEN><USER_ID xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><USER_NAME xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><USER_PASSWD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><SUBMIT_DATE xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><PAGE_SIZE xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><CURRENT_PAGE xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><TOTAL_RECORD xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><PROVINCE_CODE>HQ</PROVINCE_CODE><ROUTE_CODE>HQ</ROUTE_CODE><TRACE_ID xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><RESERVED_1 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/><RESERVED_2 xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:nil=\"true\"/></ns2:MSGHEADER><ns2:INPUTCOLLECTION><ns2:INPUTCOLLECTION_ITEM><ns2:PRI_KEY>10624105_2</ns2:PRI_KEY><ns2:GIVEN_NAME>闫晓巍</ns2:GIVEN_NAME><ns2:EMPLOYEE_NUMBER>29006179</ns2:EMPLOYEE_NUMBER><ns2:EMPLOY_ID>408185</ns2:EMPLOY_ID><ns2:COMPANY_CODE>tj</ns2:COMPANY_CODE><ns2:COMPANY_NAME>天津</ns2:COMPANY_NAME><ns2:PARENT_ORG_CODE>00293600000000000000</ns2:PARENT_ORG_CODE><ns2:PARENT_ORG_NAME>中国移动通信集团天津有限公司\\河北・河东分公司</ns2:PARENT_ORG_NAME><ns2:EMAIL_ADDRESS>yanxiaowei@tj.chinamobile.com</ns2:EMAIL_ADDRESS><ns2:PERSON_TEL>13800000000</ns2:PERSON_TEL><ns2:GENDER_CODE>1</ns2:GENDER_CODE><ns2:GENDER>男</ns2:GENDER><ns2:LEVEL_CODE xmlns:xsi=\"http://www.w3.org/2001/XMLSchem
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值