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报文的更多相关文章

  1. java写webservice接口

    有一个需求:要求根据设备mac和终端设备类型来查询设备库存状态. 接口协议是采用webservice协议,信息交互方式为xml格式信息 输入参数存放到XML各个节点下,并转为一个String,作为接口 ...

  2. Java调用webservice接口方法

                             java调用webservice接口   webservice的 发布一般都是使用WSDL(web service descriptive langu ...

  3. 转:在java中使用dom4j解析xml

    JAVA 使用Dom4j 解析XML Java DOM4J Parser - Parse XML Document Dom4j下载及使用Dom4j读写XML简介 在java中使用dom4j解析xml ...

  4. 解析xml报文,xml与map互转

    这段时间写了一个关于xml报文的工具类,做一下具体的讲解: xml文本 <NTMMessage version="1.03"> <NTMHeader> &l ...

  5. Delphi调用JAVA的WebService上传XML文件(XE10.2+WIN764)

    相关资料:1.http://blog.csdn.net/luojianfeng/article/details/512198902.http://blog.csdn.net/avsuper/artic ...

  6. Java 发送SOAP请求调用WebService,解析SOAP报文

    https://blog.csdn.net/Peng_Hong_fu/article/details/80113196 记录测试代码 SoapUI调用路径 http://localhost:8082/ ...

  7. java代码用dom4j解析xml文件的简单操作

    时间: 2016/02/17 目标:为telenor的ALU Femto接口写一个采集xml文件并解析出locationName标签里的值,然后更新到数据库中. 从网上搜了下,有四种常用的解析xml的 ...

  8. java 调用webservice接口

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...

  9. Java调用webservice接口方法(SOAP message、xfire、axis)

    webservice的 发布一般都是使用WSDL(web service descriptive language)文件的样式来发布的,在WSDL文件里面,包含这个webservice暴露在外面可供使 ...

随机推荐

  1. MindSpore模型验证

    技术背景 在前面一篇博客中,我们介绍了MindSpore在机器学习过程中保存和加载模型的方法.这种将模型存储为静态文件的做法,使得我们可以更灵活的使用训练出来的模型,比如用于各种数据集的验证,或者是迁 ...

  2. 【Docker】7. 镜像-加载原理、分层原理、commit镜像

    一.什么是镜像 镜像是一种轻量级.可执行的独立软件包,用来打包软件运行环境和基于运行环境开发的软件. 它包含运行某个软件所需的所有内容,包括代码.运行时环境.库.环境变量和配置文件. 所有的应用,直接 ...

  3. C#是怎么跑起来的

    解释流程前,需要了解一些基本的概念. 基本概念解释: CPU :中央处理器,计算机的大脑,内部由数百万至数亿个晶体管组成,是解释和运行最终转换成机器语言(二进制代码)的地方.机器语言是通过CPU内存的 ...

  4. mysql基础之数据库变量(参数)管理

    数据库的数据存放路径:[root@ren7 mysql]# pwd /var/lib/mysql [root@ren7 mysql]# ls aria_log.00000001 ibdata1 mul ...

  5. Java 常量值的数据类型

    Java 常量值(也叫字面量)和变量一样,也是有数据类型的. 经常有面试题考察你对 Java 常量值数据类型的理解,如下: float a = 3.3; 问你这一行代码是否正确?答案肯定是不正确.为什 ...

  6. 友盟+U-APM应用性能报告:Android崩溃率达0.32%,OPPO 、华为、VIVO 崩溃表现良好

    ​随着信息技术高速发展,移动互联几乎已成为了一种生活方式的代名词,在全民上网的数字热潮中,如何能最大程度保障产品服务的稳定性,提供良好的用户体验,是当前企业都需要思考和亟待解决的问题.App的应用性能 ...

  7. protege 构建本体

    这里我们使用的是Protégé-OWL规范. 推理机后的内容主要是实操内容,根据推理机来对protege本体模型的一个操作过程,以加深本体模型的一个规范认识. 一.什么是本体(Ontologie) 本 ...

  8. unity中使用Highlighting System v4.0插件给物体添加高亮

    插件:Highlighting System v4.0 操作:在摄像机上挂上HighlightingRenderer脚本 脚本目录在\Assets\Plugins\HighlightingSystem ...

  9. Navigation 在fragment之间用bundel传递数据

    使用 Bundle 对象在目的地之间传递参数 如果您不使用 Gradle,仍然可以使用 Bundle 对象在目的地之间传递参数.创建 Bundle 对象并使用 navigate() 将它传递给目的地, ...

  10. 将 maven repo 部署到 Gitlab

    为什么要将 maven repo 部署到 Gitlab 将 Maven artifacts 放在对应的项目仓库下,而不是专门再去建一个 Maven 仓库.这么做使用起来更方便,更易于管理. 借助 Gi ...