`
longgangbai
  • 浏览: 7330503 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Apache CXF REST WebService简单应用

 
阅读更多

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

 

 

</p>

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的配置文件配置相关的参数
 *   <pre>
 *     <import resource="classpath:META-INF/cxf/cxf-all.xml"/>
 *              
*		<http-conf:conduit name="*.http-conduit">
*			<http-conf:client ReceiveTimeout="600000" ConnectionTimeout="600000"/><!-- 10分钟 -->
*		</http-conf:conduit>
*
*
*        <bean id="RestWSBean" class="com.easyway.rest.webservice.RestWebService"/>
*        
*        <jaxrs:server id="RestWS" address="/restWS">
*			<jaxrs:serviceBeans>
*				<ref bean="restService" />
*			</jaxrs:serviceBeans>
*		</jaxrs:server>
* </pre>
 * 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="http://localhost:8080/ApacheCXFREST/service/restWS">
 * 			<resource path="/rest">
 * 			<method name="GET">
 * 			..............
 *   请求的路径=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<String, Object> formParams){
		Map<String,Object> 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配置如下:

<?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:jaxrs="http://cxf.apache.org/jaxrs"
                 xmlns:jaxws="http://cxf.apache.org/jaxws"
                 xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
                 xsi:schemaLocation="
                       http://www.springframework.org/schema/beans
                       http://www.springframework.org/schema/beans/spring-beans.xsd
                       http://cxf.apache.org/jaxrs
                       http://cxf.apache.org/schemas/jaxrs.xsd
                       http://cxf.apache.org/jaxws
                       http://cxf.apache.org/schemas/jaxws.xsd
                       http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd">
 
       <!-- 针对CXF发布服务的需要的配置的加载的导入 -->
        <import resource="classpath:META-INF/cxf/cxf-all.xml"/>
        <!-- 设置服务相关的请求的配置 -->        
		<http-conf:conduit name="*.http-conduit">
			<http-conf:client ReceiveTimeout="600000" ConnectionTimeout="600000"/><!-- 10分钟 -->
		</http-conf:conduit>

        <!-- 
          	设置需要发布的bean
         -->
        <bean id="RestWSBean" class="com.easyway.rest.webservice.RestWebService"/>
        <!-- 
          	发布相关的WebService
         -->
        <jaxrs:server id="RestWS" address="/restWS">
			<jaxrs:serviceBeans>
				<ref bean="RestWSBean" />
			</jaxrs:serviceBeans>
		</jaxrs:server>

		
</beans>

 

 

web.xml配置如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
   <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  <display-name>RESTWebServices</display-name>
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContent-*-services.xml</param-value>
  </context-param>
  <listener>
    <listener-class>
  		org.springframework.web.context.ContextLoaderListener
  	</listener-class>
  </listener>

  <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>/service/*</url-pattern>
  </servlet-mapping>
</web-app>

 

分享到:
评论

相关推荐

    05-ApacheCamel-CXF-WebService

    在项目中,"05-ApacheCamel-CXF-WebService-Client"这部分内容可能是客户端的应用,用于调用由Apache CXF和Camel服务端提供的Web服务。客户端通常包括CXF的客户端API配置,以及Camel的路由定义,用于发起服务请求并...

    cxf-webservice 最简单的

    【CXF Webservice 最简单的应用详解】 Apache CXF 是一个开源的 Java 框架,主要用于构建和开发 Web 服务。它提供了丰富的功能,包括支持多种 Web 服务规范,如 SOAP、RESTful API 和 JAXB,使得创建和消费 Web ...

    apache-cxf_WebService

    Apache CXF是一个开源的Java框架,它主要用于构建和开发Web服务。这个项目的名字"CXF"代表了"CXF融合一切"(CXF = See Everything Fusion)。Apache CXF允许开发者以多种方式创建Web服务,包括使用Java API for Web ...

    cxf rest webservice

    【标题】:“CXF REST Web服务” 在Java世界中,Apache CXF是一个广泛使用的开源框架,用于构建和消费Web服务,包括RESTful服务。REST(Representational State Transfer)是一种轻量级的架构风格,用于设计网络...

    Cxf+webservice(客服端和服务端)

    Apache CXF是一个全面的开源Web Service框架,它集成了多种协议和标准,如JAX-WS、JAX-RS、SOAP、REST、XML、JSON等。CXF允许开发人员选择最适合其应用场景的技术栈,无论是基于文档的Web Service还是基于WSDL的第...

    使用CXF构建webservice和rest应用

    总结来说,这篇博客将指导开发者如何利用Apache CXF这一强大工具来构建和部署Web服务和REST应用,同时提供了一个实际的项目案例供学习和实践。通过阅读和实践,开发者不仅可以掌握CXF的基本用法,还能了解到服务的...

    apache-cxf 2.2.8版本下载

    在描述中提到的"webservice反向生成服务端.docx"文件,很可能是一个关于如何使用CXF反向工程生成服务端代码的指南。通常,反向工程是指从现有的WSDL文件出发,自动生成Java服务类和服务接口,这样开发者可以根据这些...

    spring cxf rest demo

    【Spring CXF REST Demo】项目是一个使用Maven构建的Java应用程序,它展示了如何将Spring框架与Apache CXF集成,以创建RESTful风格的服务。在这个项目中,开发者可以学习到如何利用CXF作为服务端的REST服务提供者,...

    CXF开发webservice服务端

    Apache CXF 是一个高性能、易于使用的框架,它支持多种协议,如SOAP、XML/HTTP、REST等,使得开发基于Java的应用程序变得更加简单高效。本文将详细介绍如何使用Apache CXF框架来构建WebService服务器端,并通过实例...

    cxf开发webservice所用jar包

    这个标题“cxf开发webservice所用jar包”表明我们正在讨论一组CXF框架所需的JAR文件,这些文件对于利用CXF开发基于Web服务的应用程序至关重要。在描述中提到“cxf-2.4.1整合spring3.0所用jar包”,这暗示了我们使用...

    基于CXF的webService本地数据交互----PC端与Android端(二)

    CXF支持多种协议,如SOAP、REST、XML以及各种WS-*标准,如WS-Security、WS-ReliableMessaging等。它的优势在于能够无缝地将Web服务与Java对象模型(JAX-WS和JAX-RS)结合,简化了服务的开发过程。 二、PC端Web ...

    cxf REST文档

    Apache CXF支持多种Web服务规范,包括SOAP和REST。REST服务通常以资源为中心,通过HTTP方法(GET、POST、PUT、DELETE等)操作这些资源。CXF提供了强大的工具和API,简化了REST服务的实现过程。 二、CXF REST服务的...

    CXF发布WebService,jboss和tomcat都能发布

    - **cxf**:Apache CXF是一个用于构建和部署Web服务的开源框架,支持多种协议,包括SOAP和REST。 - **webservice**:Web服务是一种基于网络的、松散耦合的软件组件交互方式,通常使用SOAP协议。 - **java**:Java是...

    通过cxf发布webservice需要的一些jar

    Apache CXF作为一个全面的Web服务框架,支持SOAP、RESTful、WS-*规范等,使得开发、部署和管理Web服务变得简单。 发布一个CXF Web服务,我们首先需要确保引入了以下关键的jar文件: 1. **cxf-api.jar**:这是CXF的...

    apache cxf 教程

    下面是一个简单的 Java 实现示例,展示了如何使用 Apache CXF 创建服务提供者: ```java // UserService.java - 用户服务接口 package server; import javax.jws.WebService; @WebService public interface ...

    cxf_webservice

    【标题】"CXF Webservice" 是一个基于Apache CXF框架构建的Web服务示例项目。这个项目展示了如何使用CXF来开发、部署和消费Web服务。Apache CXF是一个开源的Java框架,它允许开发者创建和消费各种Web服务,包括SOAP...

    CXF-REST搭建WebService服务端demo

    本示例将详细讲解如何使用Spring、Apache CXF和Maven来创建一个基于REST的WebService服务端Demo。 首先,让我们理解这些关键组件的作用: 1. **Spring**:这是一个全面的开发框架,用于构建Java应用程序,特别是...

    CXF开发webservice客户端

    本文档将详细介绍如何使用 Apache CXF 2.2.6 和 Spring WS 1.5.8 构建一个简单的 WebService 客户端。通过本教程,您将能够掌握从创建工程到实际调用 Web 服务的一系列步骤。 #### 二、开发环境搭建 1. **Apache ...

    apache-cxf-3.1.6

    在描述中提到,"cxf框架 webservice 生成客户端工具很好使用",这表明Apache CXF在构建客户端时表现得相当友好。要创建一个CXF客户端,你首先需要获取服务的WSDL URL,然后使用CXF的wsdl2java工具将WSDL转换为Java...

    apache CXF 2 way SLL

    Apache CXF 是一个功能强大且灵活的 WebService 框架,它不仅支持 SOAP 和 REST 风格的服务,还可以与多种加密协议(如 SSL/TLS)集成,以提高安全性。通过本文介绍的步骤,开发者可以使用 CXF 构建安全可靠的 ...

Global site tag (gtag.js) - Google Analytics