标签:startup val query min ret 技术分享 ide delete ebs
下面是发布一个restFull风格的实例:
服务端:
实体:
import java.util.Date;
import javax.xml.bind.annotation.XmlRootElement;
/**
* 实体
*/
@XmlRootElement(name="student")
public class Pojo {
private long id;
//温度
private String detail;
//日期
private Date date;
//最高
private int temperature_max;
//最低
private int temperature_min;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getTemperature_max() {
return temperature_max;
}
public void setTemperature_max(int temperature_max) {
this.temperature_max = temperature_max;
}
public int getTemperature_min() {
return temperature_min;
}
public void setTemperature_min(int temperature_min) {
this.temperature_min = temperature_min;
}
}
一定要在实体类的前边加上annotation ,这样才能让信息在POJO和XML之间转换
SEI:
package service;
import java.util.List;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import entity.Pojo;
/**
* 接口
*/
@WebService
@Path("/student")
public interface WeatherInterface {
//MediaType
//查询学生列表
@GET
@Path("/queryList/{type}")
@Consumes(MediaType.APPLICATION_XML)
public List<Pojo> queryWeather(@PathParam("type")String cityName);
//查询学生
@GET
@Path("/query/{id}")
@Produces({MediaType.APPLICATION_JSON,MediaType.APPLICATION_XML})
public Pojo queryById(@PathParam("id")long id);
}
每个方法之前,要用annotation声明http请求的method类型,比如GET,DELETE,POST, PUT
@Path("/room/{id}")中的id是一个参数,应该在方法的参数列表中声明: public Pojo queryById(@PathParam("id")long id)
实现类:
package service;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import com.sun.org.glassfish.gmbal.ParameterNames;
import entity.Pojo;
/**
* 实现类
*/
public class Impl implements WeatherInterface {
@Override
public List<Pojo> queryWeather(String cityName) {
List<Pojo> list = new ArrayList<Pojo>();
//日历附件
Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DATE);
Pojo pojo1 = new Pojo();
pojo1.setId(01);
pojo1.setDetail("晴1");
pojo1.setDate(new Date());
pojo1.setTemperature_max(5);
pojo1.setTemperature_min(-6);
Pojo pojo2 = new Pojo();
pojo2.setId(02);
pojo2.setDetail("晴2");
calendar.set(Calendar.DATE, day+1);
pojo2.setDate(calendar.getTime());
pojo2.setTemperature_max(5);
pojo2.setTemperature_min(-6);
Pojo pojo3 = new Pojo();
pojo3.setId(003);
pojo3.setDetail("晴3");
calendar.set(Calendar.DATE, day+2);
pojo3.setDate(calendar.getTime());
pojo3.setTemperature_max(5);
pojo3.setTemperature_min(-6);
list.add(pojo1);
list.add(pojo2);
list.add(pojo3);
return list;
}
@Override
public Pojo queryById(long id) {
Pojo pojo1 = new Pojo();
pojo1.setId(id);
pojo1.setDetail("张三");
pojo1.setDate(new Date());
pojo1.setTemperature_max(5);
pojo1.setTemperature_min(-6);
return pojo1;
}
}
spring配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jaxrs="http://cxf.apache.org/jaxrs"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://cxf.apache.org/jaxrs
http://cxf.apache.org/schemas/jaxrs.xsd" >
<!-- service -->
<bean id="WeatherInterface" class="service.Impl" />
<!-- 通过jaxrs:server方式来配置webservice -->
<jaxrs:server address="/weather">
<jaxrs:serviceBeans>
<ref bean="WeatherInterface" />
</jaxrs:serviceBeans>
</jaxrs:server>
</beans>
xml配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<!-- 加载spring容器 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- cxf的servlet -->
<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>
</web-app>
把项目部署到tomcat,地址栏输入:http://localhost:8989/cxf_rest_spring_service/ws/
webservice--cxf和spring结合,发布restFull风格的服务
标签:startup val query min ret 技术分享 ide delete ebs
原文地址:http://www.cnblogs.com/baorantHome/p/7417151.html