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测试
后台获取如下