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暴露在外面可供使 ...
随机推荐
- C++ primer plus读书笔记——第17章 输入、输出和文件
第17章 输入.输出和文件 1. 对键盘进行输入缓冲可以让用户在将输入传输给程序之前返回并更正.C++程序通常在用户按下回车键时刷新输入缓冲区. 2. 一些I/O类 streambuf类为缓冲区提供了 ...
- C++ primer plus读书笔记——第9章 内存模型和名称空间
第9章 内存模型和名称空间 1. 头文件常包含的内容: 函数原型. 使用#define或const定义的符号常量. 结构声明. 类声明. 模板声明. 内联函数. 2. 如果文件名被包含在尖括号中,则C ...
- 3.下载CentOS镜像
下载CentOS镜像 引子: 镜像可以看成是类似ZIP的压缩文件,与rar ZIP压缩包类似,镜像文件是无法直接使用的,需要利用一些虚拟光驱工具 进行解压后才能使用 我们这里就是CentOS系统的镜像 ...
- shell中的 “.”和source export
在shell脚本里面export的环境变量,在set里面竟然看不到.为什么在shell脚本里面用export设置环境变量之后,当shell执行完了,用set命令看不到呢?但是你如果直接在终端里expo ...
- centos7.0修改网卡名为ethx
场景: 由于默认的centos7网卡名对于大多数习惯于原先的命名方式的人而言是一种折磨,因此我们需要让他恢复正常! 编辑/etc/sysconfig/grub文件 vim /etc/sysconfig ...
- Linux进阶之进程管理
本节内容 1.进程管理 2.ps 3.uptime 4.top 5.ss -tnl------ lsof -i :22 一. 进程管理的概念 程序:二进制文件,静态 /bin/date,/usr/sb ...
- KEIL中查看程序存储空间的大小
Program Size: Code=86496 RO-data=9064 RW-data=1452 ZI-data=16116 Code是代码占用的空间,RO-data是 Read Only 只读常 ...
- Spring AOP 用法浅谈(Day_18)
当你这一天没有在进步,那你就是在退步! [简述] Aspect Oriented Programming :面向切面编程 所谓面向切面编程,是一种通过预编译和运行期动态代理的方式实现在不修改源代码的情 ...
- android Room数据库仓库模式
- 缩放 transform
转换属性 transform 转换是css3中的一个特征,可以实现元素的缩放,位移,变形. 作用: 使元素在位置或者形状上发生一定的改变. 属性: transform 属性值: scale:缩放(一般 ...