java 写webservice接口解析xml报文
1 <!--解析xml报文-->
2 <dependency>
3 <groupId>dom4j</groupId>
4 <artifactId>dom4j</artifactId>
5 <version>1.6.1</version>
6 </dependency>
新增一个接口
1 @WebService
2 public interface IAPP_WS_002_insertUserDateService {
3
4 public void insertUserDate(String body);
5
6 }
实现类
1 import com.webservice.server.service.IAPP_WS_002_insertUserDateService;
2 import org.dom4j.Document;
3 import org.dom4j.DocumentException;
4 import org.dom4j.DocumentHelper;
5 import org.dom4j.Element;
6
7 import javax.jws.WebService;
8 import java.util.Iterator;
9
10 /**
11 * 插入人员数据
12 */
13 @SuppressWarnings("all")
14 @WebService
15 public class APP_WS_002_insertUserDateServiceImpl implements IAPP_WS_002_insertUserDateService {
16
17 /**
18 * 解析传来的xml报文
19 *
20 * @param body
21 */
22 @Override
23 public void insertUserDate(String body) {
24 readStringXml(body);
25 }
26
27
28 /**
29 * 解析传来的xml报文
30 *
31 * @param xml
32 */
33 public static void readStringXml(String xml) {
34 Document doc = null;
35 try {
36 doc = DocumentHelper.parseText(xml); // 将字符串转为XML
37 Element rootElt = doc.getRootElement(); // 获取根节点
38 System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称 DATA
39 Iterator iter = rootElt.elementIterator("HEAD"); // 获取根节点下的子节点HEAD
40 // 遍历HEAD节点
41 while (iter.hasNext()) {
42 Element recordEle = (Element) iter.next();
43 String BIZTRANSACTIONID = recordEle.elementTextTrim("BIZTRANSACTIONID"); //取HEAD下节点的值
44 String COUNT = recordEle.elementTextTrim("COUNT"); //取HEAD下节点的值
45 String CONSUMER = recordEle.elementTextTrim("CONSUMER"); //取HEAD下节点的值
46 String SRVLEVEL = recordEle.elementTextTrim("SRVLEVEL"); //取HEAD下节点的值
47 String ACCOUNT = recordEle.elementTextTrim("ACCOUNT"); //取HEAD下节点的值
48 String PASSWORD = recordEle.elementTextTrim("PASSWORD"); //取HEAD下节点的值
49
50 System.out.println("BIZTRANSACTIONID:" + BIZTRANSACTIONID);
51 System.out.println("COUNT:" + COUNT);
52 System.out.println("CONSUMER:" + CONSUMER);
53 System.out.println("SRVLEVEL:" + SRVLEVEL);
54 System.out.println("ACCOUNT:" + ACCOUNT);
55 System.out.println("PASSWORD:" + PASSWORD);
56 }
57 Iterator iterss = rootElt.elementIterator("LIST"); ///获取根节点下的子节点LIST
58 // 遍历LIST节点
59 while (iterss.hasNext()) {
60 Element recordEless = (Element) iterss.next();
61 Iterator itersElIterator = recordEless.elementIterator("ITEM"); // 获取子节点LIST下的子节点ITEM
62 // 遍历LIST节点下的ITEM节点
63 while (itersElIterator.hasNext()) {
64 Element itemEle = (Element) itersElIterator.next();
65 String ID = itemEle.elementTextTrim("ID");
66 String NAME = itemEle.elementTextTrim("NAME");
67 String ADDR = itemEle.elementTextTrim("ADDR");
68 String SEX = itemEle.elementTextTrim("SEX");
69 String AGE = itemEle.elementTextTrim("AGE");
70 String MARK = itemEle.elementTextTrim("MARK");
71
72 System.out.println("ID:" + ID);
73 System.out.println("NAME:" + NAME);
74 System.out.println("ADDR:" + ADDR);
75 System.out.println("SEX:" + SEX);
76 System.out.println("AGE:" + AGE);
77 System.out.println("MARK:" + MARK);
78 }
79 }
80 } catch (DocumentException e) {
81 e.printStackTrace();
82 } catch (Exception e) {
83 e.printStackTrace();
84 }
85 }
86 }
发布
1 import com.webservice.server.service.impl.APP_WS_001getNoteByIdServiceImpl;
2 import com.webservice.server.service.impl.APP_WS_002_insertUserDateServiceImpl;
3 import org.springframework.boot.ApplicationArguments;
4 import org.springframework.boot.ApplicationRunner;
5 import org.springframework.stereotype.Component;
6 import javax.xml.ws.Endpoint;
7
8 @Component
9 @SuppressWarnings("all")
10 public class WebserviceConfig implements ApplicationRunner {
11
12
13 private String add_WS_002 = "http://localhost:8081/webservice/insertUserDate";
14
15 @Override
16 public void run(ApplicationArguments args) throws Exception {
17 Endpoint.publish(add_WS_002, new APP_WS_002_insertUserDateServiceImpl());
18 System.out.println("webservice接口 发布成功");
19 }
20 }
测试

使用SOAPUI测试

后台获取如下

java 写webservice接口解析xml报文的更多相关文章
- java写webservice接口
有一个需求:要求根据设备mac和终端设备类型来查询设备库存状态. 接口协议是采用webservice协议,信息交互方式为xml格式信息 输入参数存放到XML各个节点下,并转为一个String,作为接口 ...
- Java调用webservice接口方法
java调用webservice接口 webservice的 发布一般都是使用WSDL(web service descriptive langu ...
- 转:在java中使用dom4j解析xml
JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...
- 解析xml报文,xml与map互转
这段时间写了一个关于xml报文的工具类,做一下具体的讲解: xml文本 <NTMMessage version="1.03"> <NTMHeader> &l ...
- Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)
相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ...
- Java 发送SOAP请求调用WebService,解析SOAP报文
https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...
- java代码用dom4j解析xml文件的简单操作
时间: 2016/02/17 目标:为telenor的ALU Femto接口写一个采集xml文件并解析出locationName标签里的值,然后更新到数据库中. 从网上搜了下,有四种常用的解析xml的 ...
- java 调用webservice接口
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...
- Java调用webservice接口方法(SOAP message、xfire、axis)
webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...
随机推荐
- 论文笔记:RankIQA
0.Abstract 本文提出了一种从排名中学习的无参考图像质量评估方法(RankIQA).为了解决IQA数据集大小有限的问题,本文训练了一个孪生网络,通过使用合成的已知相对图像质量排名的数据集来训练 ...
- ES6学习-1 啥是ES6啊
我不准备刨根问底,找寻他的十八辈祖先,希望用最简单的方式能够说明白ES6是个啥,come on baby ES6的全称是ECMAScript 6.0,他于2015 年 6 月正式发布,它的目标是使得 ...
- C#·JSON的处理和解析
阅文时长 | 0.34分钟 字数统计 | 309.6字符 主要内容 | 1.引言&背景 2.声明与参考资料 『C#·JSON的处理和解析』 编写人 | SCscHero 编写时间 | 2021 ...
- [Qt] 《开发指南》samp4.1 源码分析
界面: 功能: 输入单价和数量,计算总价:进制转换 控件: Qlabel QLineEdit QPushButton 文件依赖关系图(depend on): main.cpp:程序入口 widget. ...
- Ubuntu 20.04 配置多网卡链路聚合
Ubuntu 20.04 配置多网卡链路聚合 多网卡IP配置 首先查看网卡信息 root@it:~# ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65 ...
- linux patch中的p0和p1的区别
命令patch的主要作用是生成diff文件和应用diff文件.举个例子来讲,当发现某个程序出现bug需要打补丁时,patch便是一个好工具. diff文件头: [root@localhost kern ...
- C++知识点案例 笔记-4
1.纯虚函数 2.抽象类 3.内部类 4.运算符重载 5.类的函数重载 6.友元的函数重载 1.纯虚函数 ==纯虚函数== //有时基类中无法给出函数的具体体现,定义纯虚函数可以为派生函数保留一个函数 ...
- UCOSII中的主栈扩展
听陈*均说 UCOSII源代码中有这样的机制 当某个TASK的栈不够用.访问越界时 会自动调用系统生成的备用扩展栈区 但这样也有风险 备用扩展栈区如果被击穿则会造成更大的错误,可能会导致程序跑飞,如果 ...
- MyBatis 动态 SQL 语句中出现 '<' 的问题
问题描述 映射接口方法如下: /** * 根据姓名和年龄查询用户信息 * @param name 姓名 * @param user 获取年龄 * @return */ public List<U ...
- Kali Linux 2021.2 发布 (Kaboxer, Kali-Tweaks, Bleeding-Edge & Privileged Ports)
Kali Linux 简介 Kali Linux 是基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审核.Kali Linux 包含数百种工具,可用于各种信息安全任务,例如渗透测 ...