第一步:导jar包
<!-- CXF -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.1</version>
</dependency>
第二步:在web.xml加上一下配置
<!--webService配置-->
<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>/ws/*</url-pattern>
</servlet-mapping>
第三步:创建application-webservice.xml配置文件
<?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"
default-autowire="byName">
<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="attendServiceWS"
implementor="com.hanvon.iface.web.ws.impl.AttendServiceImpl"
address="/attendService">
<jaxws:properties>
<entry key="autoRewriteSoapAddress" value="true"/>
</jaxws:properties>
</jaxws:endpoint>
</beans>
第四步:编写webService类
接口:
package com.hanvon.iface.web.ws;
import javax.jws.WebParam;
import javax.jws.WebService;
import com.hanvon.iface.web.ws.utils.Point;
@WebService(targetNamespace = "kserver.hanvon.com")
public interface AttendService
{
public Point deleteClassInfo(@WebParam(name = "transCode") String transCode);
}
实现类:
package com.hanvon.iface.web.ws.impl;
import com.hanvon.iface.web.ws.AttendService;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.xml.ws.WebServiceContext;
import com.hanvon.iface.web.ws.utils.Point;
@Component("attendService")
@WebService(endpointInterface = "com.hanvon.iface.web.ws.AttendService"
,targetNamespace = "kserver.hanvon.com")
public class AttendServiceImpl implements AttendService {
@Resource
private WebServiceContext context;
@Override
public Point deleteClassInfo(@WebParam(name="transCode")String transCode) {
System.out.println("transCode:"+transCode);
Point point = new Point();
point.setCode("0");
point.setMessage("同步成功!");
return point;
}
}
可以访问http://localhost:8080/ws/attendService?wsdl,即发布成功
注:返回xml数据工具类
package com.hanvon.iface.web.ws.utils;
public class Point {
private String code;
private String message;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
用soapUi测试返回报文如下:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:deleteClassInfoResponse xmlns:ns2="kserver.hanvon.com">
<return>
<code>0</code>
<message>同步成功!</message>
</return>
</ns2:deleteClassInfoResponse>
</soap:Body>
</soap:Envelope>