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
配置项,这样也能方便保证资源的单例。
分享到:
相关推荐
将Wink与Spring集成,可以充分利用两者的优点,实现高效、灵活的REST服务开发。 集成Spring和Apache Wink的主要目标是利用Spring的IOC容器管理Wink的组件,如资源、过滤器和消息处理器,以及利用Spring的数据访问和...
Apache Wink与Spring框架的集成允许我们利用Spring的强大功能,如依赖注入(DI)和AOP。在`spring`配置文件中,我们可以定义Bean并将其注入到Wink资源类中。 ```xml <beans xmlns="http://www.springframework.org/...
7. **与Spring集成**:Wink可以与Spring框架无缝集成,便于利用Spring的依赖注入和管理功能。 **解压和使用源代码:** 1. **解压文件**:首先,你需要使用解压工具(如tar命令在Linux或macOS,或7-Zip在Windows)来...
6. **安全集成**:Wink可以与常见的安全框架集成,如Spring Security或JAAS,为Web服务提供身份验证和授权功能。 7. **调试和监控**:Wink提供了一套丰富的工具和日志选项,帮助开发者调试和优化他们的RESTful服务...
基于 SpringCloud + Vue + MySQL 实现,页面整洁美观,实现的功能有: 1. 企业数据集市管理(数据服务、数据脱敏、服务集成、服务日志等) 2. 企业数据可视化管理(数据集、图表配置、看板配置) 3. 企业流程管理...
在SSH集成应用中,Spring作为整体的协调者,通常负责管理Struts和Hibernate的生命周期。Spring可以管理Struts的Action实例,实现依赖注入,同时也可以接管Hibernate的数据访问层,通过SessionFactory和Session来执行...
1. Springmvc + Mybatis集成、SpringSecurity权限控制、Spring AOP事务处理。 2. Wink Rest服务、Webservice服务:jaxws、CXF等 3. IO 流上传下载文件,多线程操作 4. 发送邮件,配置邮件服务器,发基于html、纯...
在技术栈上,Spring Boot以其“约定优于配置”的原则,使得开发者可以快速搭建项目,减少配置文件的工作量。同时,Spring Boot内嵌的Tomcat服务器使得应用可以直接运行而无需额外部署步骤。 数据库方面,可能使用的...
MyBatis则作为一个轻量级的持久层框架,用于简化数据库操作,它允许开发者通过XML或注解方式定义SQL语句,将SQL与Java代码紧密集成。 在数据库设计方面,MySQL是广泛使用的开源关系型数据库,它提供了高效稳定的...
开发者可以利用Spring Boot的RESTful API设计,以JSON格式交换数据,与微信小程序和Vue移动端进行通信。 Vue.js是一个轻量级的前端JavaScript框架,以其易学易用、高性能和灵活性著称。Vue的核心库专注于视图层,...