cxf发布webservice与java客户端解析webservice
发布时间:2020-12-17 00:19:03 所属栏目:安全 来源:网络整理
导读:cxf发布webservice与java客户端解析webservice 一.服务端发布webservice(CXF,添加cxf所需jar): 1.接口类 package com.god.ws@WebService(targetNamespace="http://webservice.myservice.god.com")public interface IWsPersonInfo { //根据姓名和年龄查询人
cxf发布webservice与java客户端解析webservice 一.服务端发布webservice(CXF,添加cxf所需jar): package com.god.ws @WebService(targetNamespace="http://webservice.myservice.god.com") public interface IWsPersonInfo { //根据姓名和年龄查询人员信息 public String getPersonInfo(@WebParam(name = "name")String name,@WebParam(name="age")int age); } 2.实现类 package com.god.ws.impl @WebService(endpointInterface = "com.god.ws",targetNamespace="http://webservice.myservice.god.com") public class WsPersonInfoImpl implements IWsPersonInfo { public String getPersonInfo(String NAME,int age){ StringBuilder strXml = new StringBuilder(); strXml.append("<?xml version="1.0" encoding="UTF-8"?>"); strXml.append(".......添加人员信息..........."); return strXml.toString(); } } 3.spring配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml"/> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/> <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/> <jaxws:endpoint id="infoEndpoint" implementor="com.god.ws.impl.WsPersonInfoImpl" address="/PersonInfo"></jaxws:endpoint> </beans> 4.web.xml配置CXF <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class> org.apache.cxf.transport.servlet.CXFServlet </servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/webservices/*</url-pattern> </servlet-mapping> 二.客户端解析webservice // 获取SOAP连接工厂 SOAPConnectionFactory factory = SOAPConnectionFactory.newInstance(); // 从SOAP连接工厂创建SOAP连接对象 SOAPConnection connection = factory.createConnection(); // 获取消息工厂 MessageFactory mFactory = MessageFactory.newInstance(); // 从消息工厂创建SOAP消息对象 SOAPMessage message = mFactory.createMessage(); // 创建SOAPPart对象 SOAPPart part = message.getSOAPPart(); // 创建SOAP信封对象 SOAPEnvelope envelope = part.getEnvelope(); // 创建SOAPHeader对象 SOAPHeader header = message.getSOAPHeader(); // 创建SOAPBody对象 SOAPBody body = envelope.getBody(); // 创建XML的根元素 ,设置查询参数 SOAPHeaderElement headerElementRoot1 = header.addHeaderElement(new QName("http://webservice.myservice.god.com","name","tns")); SOAPHeaderElement headerElementRoot2 = header.addHeaderElement(new QName("http://webservice.myservice.god.com","age","tns")); body.addBodyElement(new QName("http://webservice.myservice.god.com","getPersonInfo","tns")); headerElementRoot1.addTextNode("神仙"); headerElementRoot2.addTextNode("28"); // 访问Web服务地址 SOAPMessage reMessage = connection.call(message,new URL("http://localhost:8080/项目名/webservices/PersonInfo?wsdl")); //strRootXml即为服务端传过来的xml数据 String strRootXml = reMessage.getSOAPPart().getEnvelope().getBody().getTextContent(); connection.close(); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |