Apache CXF REST WebService简单应用

阅读更多

      本文目的就项目中的Apache CXF中的REST WebService风格的展现。下面言归正传,看实惠,代码如下:

 

Apache CXF REST WebService简单应用_第1张图片

 

package com.easyway.rest.webservice;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;

import org.apache.cxf.jaxrs.ext.MessageContext;
/**
 * Apache CXF REST方式发布WebService的总结
 * 1.定义Apache CXF CXFServlet的服务发布拦截类
 *    org.apache.cxf.transport.servlet.CXFServlet;
 * 2.定义相关REST WebService的服务类
 *      RestWebService
 * 3.在相关的Spring的配置文件配置相关的参数
 *   
 *     
 *              
*		
*			
*		
*
*
*        
*        
*        
*			
*				
*			
*		
* 
* 4.发布相关的Web服务 * 查看相关的服务: * 例如: * http://localhost:8080/ApacheCXFREST/service/ * ApacheCXFREST为Web项目上下文 * service为Apache CXF在Web.xml容器中配置的拦截路径 * 查看WADL的路径: * http://localhost:8080/ApacheCXFREST/service/restWS?_wadl&_type=xml * ApacheCXFREST为Web项目上下文 * service为Apache CXF在Web.xml容器中配置的拦截路径 * restWS为Spring的中配置的REST服务的拦截的路径 * _wadl&_type=xml为WADL的协议的格式 * * * * * .............. * 请求的路径=resources元的base属性+resource元素的path属性 * 例如:http://localhost:8080/ApacheCXFREST/service/restWS/rest * 5.请求相关的服务 * 例如 * * @author longgangbai * */ @Path("/rest") public class RestWebService { private MessageContext messageContext; /** * 存储发送的数据 * @param messageContext */ @Context public void setMessageContext(MessageContext messageContext) { this.messageContext = messageContext; } /** * * 领导慰问士兵们的 * * @param username xx * @return */ @GET() @Consumes(MediaType.TEXT_PLAIN) public String helloworld(){ return "xx说: 同志们辛苦了 !! "; } /** * 当需要Servlet环境采用注释中的内容获取客户端中的Servlet环境的中的各种信息 * 如上传,下载之类,可能需要知道比较多的信息 * 采用这种方式 * @SuppressWarnings("unchecked") @POST @Produces(MediaType.TEXT_PLAIN) @Consumes(MediaType.APPLICATION_FORM_URLENCODED) public String postMethod(MultivaluedMap formParams){ Map requestMap=null; boolean isGet=false; if(formParams!=null){ requestMap=(Map)formParams; }else{ try { this.messageContext.getHttpServletRequest().setCharacterEncoding("UTF-8"); this.messageContext.getHttpServletResponse().setCharacterEncoding("UTF-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } requestMap=this.messageContext.getHttpServletRequest().getParameterMap(); isGet=true; } return ""; } */ /** *广大士兵 回答 * @return */ @POST() @Produces(MediaType.TEXT_PLAIN) public String service(){ return "士兵说:为人民服务"; } }

 

 

spring关于rest配置如下:



 
       
        
                
		
			
		

        
        
        
        
			
				
			
		

		

 

 

web.xml配置如下:



   
    index.jsp
  
  RESTWebServices
  
    contextConfigLocation
    classpath:applicationContent-*-services.xml
  
  
    
  		org.springframework.web.context.ContextLoaderListener
  	
  

  
    CXFServlet
    org.apache.cxf.transport.servlet.CXFServlet
    1
  
  
    CXFServlet
    /service/*
  

 

你可能感兴趣的:(Apache CXF REST WebService简单应用)