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暴露在外面可供使 ...
随机推荐
- 折腾Linux内核编译
计网提高实验.指导书给的是远古版本2.6.39.2,轻易在某hub上找到下载地址 查表 看起来Ubuntu 11.04离得最近,遂下一个镜像 懒得上google检索了,编译准备先follow这篇博客试 ...
- If-Else 太多,如何优化!!!
完全不必要的 Else 块 public void consumer(int product) { if (product > 1) { // do something } else { // ...
- 高阶函数 / abs方法
abs()求绝对值,填括号里面
- [Python] 基本概念
1.基本概念 三大特性:封装.继承.多态 继承:派生类继承基类的字段和方法 多态:对不同类型的变量进行相同的操作,却表现出不同的行为(例如对数字和字符做"+"运算) 封装:将数据和 ...
- 强哥PHP学习笔记
1.php的代码,必须放在.php的文件中,php代码必须写在<?php ?>之间. 2.//单行注释 /* 多行注释 */ 3.默认首页index.php index.html inde ...
- SecureCRT自动保存日志设置
SecureCRT自动保存日志设置原创杭州_燕十三 最后发布于2017-03-26 22:00:08 阅读数 24731 收藏展开 嵌入式开发经常由于无法debug而只能使用串口打印日志的方式调试代码 ...
- linux系统开机自动挂载光驱 和 fstab文件详解
Linux 通过 UUID 在 fstab 中自动挂载分区 summerm6关注 2019.10.17 16:29:00字数 1,542阅读 607 https://xiexianbin.cn/lin ...
- 2019年又迎来Hi1620,鲲鹏920则是Hi1620系列的正式品牌和型号
据记者了解,2013年华为就发布了Hi1610,2014年的Hi1612是ARM64位CPU,2016年的Hi1616是首颗支持多路的ARM处理器,2019年又迎来Hi1620,鲲鹏920则是Hi16 ...
- stm32.cube(一)——系统架构及目录结构
一.前言 Arm的应用场景往往比51单片机复杂得多,如果一个高级应用的开发需要连底层的结构性代码都要重构,那么在成本和研发周期上就会面临巨大的风险.为了简化编码过程,芯片厂商经常会提供一些板卡级支持的 ...
- python 中的nonlocal
python 中nonloal 关键字用来在函数或其他作用域中使用外层变量(非全局),也可使用global需要在函数外部