参考博客https://www.cnblogs.com/xiaoxian1369/p/4332390.html
pom.xml
<!--cxf-->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.0.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.0.3</version>
</dependency>
<!--json-->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-core-asl</artifactId>
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-jaxrs</artifactId>
<version>1.9.12</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-xc</artifactId>
<version>1.9.12</version>
</dependency>
web.xml
<servlet>
<servlet-name>CXF</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXF</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
applicationContext.xml
<jaxrs:server address="/">
<!--serviceBeans:暴露的WebService服务类-->
<jaxrs:serviceBeans>
<ref bean="userInterfaceImpl"/>
</jaxrs:serviceBeans>
<!--支持的协议-->
<jaxrs:extensionMappings>
<entry key="json" value="application/json"/>
<entry key="xml" value="application/xml"/>
</jaxrs:extensionMappings>
<!--对象转换-->
<jaxrs:providers>org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider</jaxrs:providers>
</jaxrs:server>
实体类User.java
package com.zres.product.trs.webservice.domain;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class User {
private String id;
private String name;
public User() {
}
public User(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
'}';
}
}
服务类userInterface.java
package com.zres.product.trs.webservice;
import javax.jws.WebService;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.zres.product.trs.webservice.domain.User;
@WebService
@Path("/user/")
public interface UserInterface {
@POST//指定请求方式 url:http://ip:port/services/user/query/1
@Produces(MediaType.APPLICATION_XML)//指定服务数据类型
@Path("query/{id}")
public User query(@PathParam("id") String id);
@GET//指定请求方式
@Produces(MediaType.APPLICATION_XML)//指定服务数据类型
@Path("getContext/{id}")
public String getContext(@PathParam("id") String id);
}
实现类userInterfaceImpl.java
package com.zres.product.trs.webservice;
import org.springframework.stereotype.Service;
import com.zres.product.trs.webservice.domain.User;
@Service
public class UserInterfaceImpl implements UserInterface {
@Override
public User query(String id) {
User user = new User();
user.setId("1");
user.setName("小明");
return user;
}
@Override
public String getContext(String id) {
return "context" + id;
}
}