maven工程的Jersey Web Service
来源:互联网 发布:linux切换至具体目录 编辑:程序博客网 时间:2024/06/07 20:02
1.在父类工程中配置pom.xml文件:
<!-- 项目属性 、版本号-->
<properties>
。。。。。。《省略其它属性》。。。。。。。
<jersey.version>2.21</jersey.version>
<validation.version>1.0.0.GA</validation.version>
</properties>
<!-- Jersey Dependencies begin - 配置具体的包->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${jersey.version}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
<version>${jersey.version}</version>
</dependency>
<!-- Jersey Dependencies end -->
然后在写业务方法的子工程pom.xml文件下配置具体的jar包(实际就是引用父类的包,在父类配置主要是为了别的子工程需要用到此包时,不需要重新配置,直接引用即可,注意观察,这里的包是不用再写版本号的):
<!-- Jersey Dependencies begin -->
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-spring3</artifactId>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!-- Jersey Dependencies end -->
4.在web子工程中的web.xml中配置拦截器
<!-- 请求拦截器,拦截所有/services/*的地址进行处理 -->
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<!-- 配置自己的资源加载类 -->
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.jmwrapid.suport.ApplicationContextSupport</param-value>
</init-param>
<init-param>
<param-name>jersey.config.beanValidation.enableOutputValidationErrorEntity.server</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
5.web.xml配置文件的资源加载类需要自己写一个class,然后将你写的service代码包名放进去(上面配置中的ApplicationContextSupport就是这里自己写的一个类,其主要是把你所写代码所在的包名加载进去进行拦截调用):/*
package com.jmwrapid.suport;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.stereotype.Component;
/**
* A simple package based configuration
*
* @author Geoffroy Warin (http://geowarin.github.io)
*/
@Component
public class ApplicationContextSupport extends ResourceConfig {
public ApplicationContextSupport() {
packages("com.jmwrapid.jersey.service");
//packages("com.gzzn.credit.business.external");
}
}
如图:
6.上图中的包路劲即是你写的service类代码,也就是具体的业务方法:
如:
package com.jmwrapid.jersey.service;
import java.util.List;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import com.gzzn.common.persist.IEntityDao;
import com.gzzn.common.persist.jdbc.IJdbcDao;
import com.gzzn.util.string.Stringbuffer;
import com.jmwrapid.model.QuestionCorpInfo;
import com.jmwrapid.model.QuestionMonth;
import com.jmwrapid.model.QuestionMonthNew;
import com.jmwrapid.model.QuestionMonthProd;
/**
* webService控制类
* @author guangwen zhou
*
*/
@Path("/ws")
public class JerseyWsServiceImp{
@Autowired
private IEntityDao dao;
@Autowired
protected IJdbcDao jdbcDao;
/***********************************获取企业基础信息问卷信息<开始>1*************************************************/
/**
* 获取企业基础信息问卷信息,返回XML格式的字符串
* @param corpOrgcode 组织机构代码
* @param corpName 企业名称
* @param reportYear 报表所属年份
* @return
*/
// @GET
@POST
@Path("/findQuestionInfo")
@Produces("text/plain;charset=UTF-8")
public String findQuestionInfo(@QueryParam("corpOrgcode") String corpOrgcode,
@QueryParam("corpName") String corpName,@QueryParam("reportYear") Integer reportYear) {
Stringbuffer sql = new Stringbuffer();
sql.append("SELECT * \n");
sql.append("FROM question_corp_info q \n");
sql.append("where 1=1\n");
/**
* 组织机构代码
。。。。。《省略》。。。。。
这里给个测试类,注意GET跟PATH不能同时存在,否则你访问的时候会报错,具体什么错忘了,有兴趣的可以试试看:
package com.jmwrapid.jersey.service;
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;
/*
* Jersey web Service 接口类
* @author guangwen zhou
*/
@Path("/ws")
public interface JerseyWsService {
/**
* 查找企业基础信息问卷
* @param params
* @return
*/
@GET
// @Path("/findQuestionInfo")
@Produces("text/plain;charset=UTF-8")
public String findQuestionInfo(@PathParam("param") String corpOrgcode,@PathParam("param") String corpName,@PathParam("param") Integer reportYear);
@GET
// @Path("/sayHello")
@Produces("text/plain;charset=UTF-8")
public String sayHello(@PathParam("param") String words);
}
7.到这,Jersey web service 基本完成啦
输入路径就可以访问啦:
http://localhost:8080/jmw-rapid/services/ws/findQuestionInfo
- maven工程的Jersey Web Service
- Maven和Jersey Framework开发REST风格Web Service
- Maven和Jersey Framework开发REST风格Web Service
- 使用Maven和Jersey Framework开发REST风格Web Service
- rest web service - jersey . spring3
- jersey (RESTful Web Service框架)
- Java Jersey web service 总结
- 使用Jersey开发Resful的web Service的hello world
- Jersey+Spring+Hibernate搭建的一个简单Web Service
- 搭建基于Spring+MyBatis+Jersey的Maven-Web系统
- Maven+jersey快速构建RESTful Web service集成mongodb-短小而精悍-值得拥有
- IntelliJ 创建Tomcat + Maven +Jersey Restful 工程
- Eclipse+Tomcat+Jersey 编写 REST web service
- 使用 Jersey + Tomcat 輕鬆開發 RESTful Web Service
- Restful 和 Jersey介绍(Web Service )
- jersey实现web service接口+客户端调用
- RESTful Web Service框架jersey简单总结
- 使用jersey构建Restful web service
- swift学习之懒加载
- [noip模拟赛]邮递员送信(spfa)
- Android TextView字号太大不显示
- 关于iOS开发一些优秀的博客整理
- 157.Flatten Nested List Iterator
- maven工程的Jersey Web Service
- 第一次安装后启动,到桌面点击图标,应用重新启动
- java——BufferedStream文件复制实例
- “在 System.Threading.ThreadAbortException 中第一次偶然出现的‘mscorlib.dll’类型的异常”的解决方法
- memcached 命中率问题 分析
- 【NOIP 模拟题】中位数(规律+递推)
- 欢迎使用CSDN-markdown编辑器
- win10的docker-toolbox启动时检查更新失败,无法正常使用
- Android四大组件之Service的介绍