`
han_zw
  • 浏览: 174389 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Wink与Spring集成的配置

阅读更多

1. 引言

Apache Wink 是一个 Restful 开发 JAXB-RS 规范的实现框架,和以前用过的 CXF 比较多, restful 还是比较小巧的(小巧也是应该,毕竟 wink 只是 restful 的框架,并不支持 SOAP )。 Wink 的部署也很简单,大概有三种方式吧。

第一种是通过注册 wink 提供的 SimpleWinkApplication 来注册 restful 的资源,资源直接在配置文件中声明。配置文件内容举例:

文件: rest-resources.properties

# Resources
com.example.FooResource
com.example.BarResource

         在系统的 web.xml 中将上述文件配置到 restful servlet 的初始化参数中。如下

<servlet>
<servlet-name>restSdkService</servlet-name>
<servlet-class>
org.apache.wink.server.internal.servlet.RestServlet
</servlet-class>
<init-param>
<param-name>applicationConfigLocation</param-name>
<param-value>/WEB-INF/rest-resources.properties </param-value>
</init-param>
</servlet>

 

         第二种是通过 Application 注册资源,通过实现 javax.ws.rs.core.Application 接口来配置和注册资源。

    以上两种我们只是简单介绍,配置均比较直观,参考 wink 的官方文档均能比较容易配置实现。本文主要介绍下第三种方式——与 spring 集成。关于与 spring 集成,官方文档也有介绍,但是在具体某些地方说的不够到位,对于刚接触 wink 的使用者在实施过程中可能就会遇到那些不是问题的问题。下面就详细介绍下集成的配置过程。而对于 restful 资源的开发不在本文介绍之内。

2. Web.xml 的配置

首先在系统的 web.xml 配置文件中我们需要加入 wink servlet 配置,这也是 wink 实现 restful 服务的入口, Wink 通过该 RestServlet 处理接收到的 HTTP 请求。

配置如下:

<servlet>
         <servlet-name>restService</servlet-name>
         <servlet-class>
         org.apache.wink.server.internal.servlet.RestServlet
        </servlet-class>
    </servlet>
    <servlet-mapping>
            <servlet-name>restService</servlet-name>
            <url-pattern>/rest/*</url-pattern>
</servlet-mapping>

 

因为我们是要和 spring 集成的,因为在 web.xml 中还要加入 spring 的支持。配置如下:

<context-param>
       <param-name>contextConfigLocation</param-name>
       <param-value>classpath:META-INF/server/wink-core-context.xml
           classpath:applicationContext-*.xml
       </param-value>
    </context-param>
    <listener>
       <listener-class>
           org.springframework.web.context.ContextLoaderListener
       </listener-class>
</listener>

 

这里有一点是需要注意的,就是参数值 classpath:META-INF/server/wink-core-context.xml ,这个文件是存在 wink wink-spring-support-1.2.0-incubating.jar 中的,这个 jar 可以在下载的 apache-wink-1.2.0-incubating.zip ext 目录中找到。如果要修改其中的默认配置,可以将该文件拷出来另存到其他目录并进行修改,当然这样的话此处的配置也需要重新指定到新路径。 classpath:applicationContext-*.xml 这个配置项是指的 spring 的配置文件。

至此, web.xml 文件的配置工作就完成了。

3. Spring 的配置

<bean id="fooResource" class="com.harvey.stuido.ws.rest.resources.FooResource"/>
<bean class="org.apache.wink.spring.Registrar">
    <property name="classes">
        <set value-type="java.lang.Class">
        </set>
    </property>
    <property name="instances">
        <set>
           <ref bean="fooResource" />
        </set>
    </property>
</bean>    
 

其中的 fooResource 是我们要发布的 restful 的资源(关于 restful 资源的开发略)。其中的 classes 配置项中的 class 集合我们留空,这个配置与前面提到的第二种方式的 Application getClasses 功能类似,因为我们是要想利用 spring 来管理各个 resource ,所以我们只配置 instances 配置项,这样也能方便保证资源的单例。

分享到:
评论

相关推荐

    apache wink集成spring 开发rest服务

    将Wink与Spring集成,可以充分利用两者的优点,实现高效、灵活的REST服务开发。 集成Spring和Apache Wink的主要目标是利用Spring的IOC容器管理Wink的组件,如资源、过滤器和消息处理器,以及利用Spring的数据访问和...

    apache wink rest学习(配置、编码、调用)

    Apache Wink与Spring框架的集成允许我们利用Spring的强大功能,如依赖注入(DI)和AOP。在`spring`配置文件中,我们可以定义Bean并将其注入到Wink资源类中。 ```xml &lt;beans xmlns="http://www.springframework.org/...

    apache-wink-1.4-src.tar.gz

    7. **与Spring集成**:Wink可以与Spring框架无缝集成,便于利用Spring的依赖注入和管理功能。 **解压和使用源代码:** 1. **解压文件**:首先,你需要使用解压工具(如tar命令在Linux或macOS,或7-Zip在Windows)来...

    apache-wink-1.2.1-incubating.tar.gz

    6. **安全集成**:Wink可以与常见的安全框架集成,如Spring Security或JAAS,为Web服务提供身份验证和授权功能。 7. **调试和监控**:Wink提供了一套丰富的工具和日志选项,帮助开发者调试和优化他们的RESTful服务...

    基于 SpringCloud 实现的企业数据智能管理系统(开发文档 + PPT + 源码)

    基于 SpringCloud + Vue + MySQL 实现,页面整洁美观,实现的功能有: 1. 企业数据集市管理(数据服务、数据脱敏、服务集成、服务日志等) 2. 企业数据可视化管理(数据集、图表配置、看板配置) 3. 企业流程管理...

    Spring + Struts +Hibernate(SSH)三大框架DEMO

    在SSH集成应用中,Spring作为整体的协调者,通常负责管理Struts和Hibernate的生命周期。Spring可以管理Struts的Action实例,实现依赖注入,同时也可以接管Hibernate的数据访问层,通过SessionFactory和Session来执行...

    Java源码 SpringMVC Mybatis Shiro Bootstrap Rest Webservice

    1. Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。 2. Wink Rest服务、Webservice服务:jaxws、CXF等 3. IO 流上传下载文件,多线程操作 4. 发送邮件,配置邮件服务器,发基于html、纯...

    SpringBoot设备管理系统(数据库 + 源码 + 说明文档)

    在技术栈上,Spring Boot以其“约定优于配置”的原则,使得开发者可以快速搭建项目,减少配置文件的工作量。同时,Spring Boot内嵌的Tomcat服务器使得应用可以直接运行而无需额外部署步骤。 数据库方面,可能使用的...

    SSM+MySQL线上web聊天室(文档 + 数据库 + 源码)

    MyBatis则作为一个轻量级的持久层框架,用于简化数据库操作,它允许开发者通过XML或注解方式定义SQL语句,将SQL与Java代码紧密集成。 在数据库设计方面,MySQL是广泛使用的开源关系型数据库,它提供了高效稳定的...

    微信小程序用户前端+SpringBoot后端+Vue移动端

    开发者可以利用Spring Boot的RESTful API设计,以JSON格式交换数据,与微信小程序和Vue移动端进行通信。 Vue.js是一个轻量级的前端JavaScript框架,以其易学易用、高性能和灵活性著称。Vue的核心库专注于视图层,...

Global site tag (gtag.js) - Google Analytics