`

jersey2 与 spring4 整合实践【原创】

阅读更多
前几年用过jeysey,那都是1.x版本的,jersey2有很多不同之处。这次我们上分布式搜索引擎,提供给业务系统的包装接口,我们准备使用restful接口,因此准备把jersey2和spring4集成起来用。以下是集成过程(本文省去spring 环境的搭建)。
1. pom引入依赖包(jersey.version=2.23)
  <dependency>
		  <groupId>org.glassfish.jersey.ext</groupId>
		  <artifactId>jersey-spring3</artifactId>
		  <version>${jersey.version}</version>
		  <exclusions>
		    <exclusion>
		      <groupId>org.springframework</groupId>
		      <artifactId>spring-core</artifactId>
		    </exclusion>			
		    <exclusion>
		      <groupId>org.springframework</groupId>
		      <artifactId>spring-web</artifactId>
		    </exclusion>
		    <exclusion>
		      <groupId>org.springframework</groupId>
		      <artifactId>spring-beans</artifactId>
		    </exclusion>
		  </exclusions>			
		</dependency>
		<dependency>
		  <groupId>org.glassfish.jersey.media</groupId>
		  <artifactId>jersey-media-json-jackson</artifactId>
		  <version>${jersey.version}</version>
		</dependency>
      <!-- spring4 相关包 -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>4.1.0.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>4.1.0.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>4.1.0.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.1.0.RELEASE</version>
      </dependency>
			<dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>4.1.0.RELEASE</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>4.1.0.RELEASE</version>
      </dependency>

2. web.xml
<servlet>
	    <servlet-name>jersey-serlvet</servlet-name>
	    <servlet-class>
	      org.glassfish.jersey.servlet.ServletContainer
	    </servlet-class>
	    <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>cn.gov.zjport.seg.search.jersey.MyApplication</param-value>
        </init-param>	
	    <load-on-startup>1</load-on-startup>
	  </servlet>
	
	  <servlet-mapping>
	    <servlet-name>jersey-serlvet</servlet-name>
	    <url-pattern>/*</url-pattern>
	  </servlet-mapping>

注:如果不用自定义的 MyApplication, spring bean 将无法注入。
3. rest服务
@Service
@Path("/selsearch")
public class SelSearchServiceImpl implements SelSearchService{
	@Resource
	private SelEsWrappedClient selEsWrappedClient;
	
	@GET
	@Path("/{param}")    
	@Produces(MediaType.TEXT_PLAIN)
	public String search(@PathParam("param") String userName) {
		return selEsWrappedClient.getName()+userName;
	}
}


SelSearchServiceImplSelEsWrappedClient 都是spring管理的bean,需要当作resource 在 MyApplication 中注册

4. 注册器
public class MyApplication extends ResourceConfig {

    /**
     * Register JAX-RS application components.
     */
    public MyApplication () {
    	
    	  //自己写的服务
    	  register(SelSearchServiceImpl.class);

    	  //用 Jackson JSON 的提供者来解释 JSON
    	  register(JacksonFeature.class);
    	
    	  //Spring filter 提供了 JAX-RS 和 Spring 请求属性之间的桥梁
    	  register(RequestContextFilter.class);
    }
}


5. 访问 http://localhost:8080/seg-search-webapp/selsearch/xxx 即可
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Spring4整合Jersey2.9

    在本文中,我们将深入探讨如何将Spring4框架与Jersey2.9进行集成,以便创建一个功能丰富的RESTful Web服务。这个入门案例采用Maven作为项目构建工具,使得整个过程更加简便。 首先,理解Spring4和Jersey2.9的核心...

    jersey+spring+mybatis整合

    "jersey+spring+mybatis整合"就是一种常见的Java Web开发模式,它结合了RESTful服务、依赖注入和持久层管理的优势。让我们详细了解一下这三个关键组件以及它们如何协同工作。 1. **Jersey**: Jersey是Java RESTful ...

    Jersey Spring4 Freemarker HIbernate整合搭建

    "Jersey Spring4 Freemarker HIbernate整合搭建"这个主题就是关于如何将这几个关键组件整合在一起,以创建一个功能强大的RESTful服务。让我们详细了解一下这些技术以及它们在集成过程中的作用。 首先,Jersey是Java...

    spring jersey整合后无法注入

    当尝试将Spring与Jersey整合时,可能会遇到“无法注入”的问题,这通常是由于依赖注入(DI)配置不正确或缺失引起的。以下是对这个问题的详细分析和解决策略。 首先,我们需要理解Spring和Jersey的基本概念。Spring...

    spring4.x 集成 jersey2.x 实现对外提供接口服务

    在本文中,我们将深入探讨如何将Spring 4.x框架与Jersey 2.x结合,以构建一个能够对外提供RESTful接口服务的系统。这个过程包括了配置、组件整合以及实际的API开发。以下是对整个集成过程的详细说明。 首先,让我们...

    Spring4 Hibernate4 jersey项目源码

    在本项目中,Jersey与Spring4结合,实现了RESTful API的设计,所有请求的返回值都以JSON格式呈现,这符合现代Web应用的轻量级、高交互性的需求。通过@Path、@GET、@POST等注解,开发者可以快速定义API接口,而jersey...

    Jersey+spring Demo

    在【压缩包子文件的文件名称列表】"Jersey2"中,我们可以推断出该示例可能使用了Jersey的第二版本。Jersey 2.x引入了更多的改进和新特性,比如更好的性能、对Java 8的支持、以及对JAX-RS 2.0规范的完全遵循。 在...

    jersey整合spring示例,亲测可行

    在这个示例中,我们将深入探讨如何将 Jersey 与 Spring 进行有效整合。 【描述】:在实际操作中,整合 Jersey 和 Spring 可能会遇到一些挑战,比如 jar 包冲突或配置问题。本文将通过一个实际的案例,详述整合过程...

    spring4+springMVC+mybatis完美整合jersey2

    在IT行业中,构建高效、可扩展的Web服务是至关重要的,而"spring4+springMVC+mybatis完美整合jersey2"就是一种实现这一目标的解决方案。这个项目结合了Spring 4、Spring MVC、MyBatis和Jersey 2这四个强大的技术,...

    java应用程序实现jetty 集成jersey 和spring

    3. 使用`@Component`和`@Path`注解:将Spring的Bean与Jersey的资源类关联,允许Spring管理资源类的生命周期。 4. 配置Jersey-Spring桥接:通过`ResourceConfig`注册Spring应用上下文,使Spring能够处理依赖注入。 ...

    jersey-spring4最新jar包

    jersey-spring4-2.26.jar 最新版本spring4-2.26,最新版本spring4-2.26

    jersey加入spring支持

    4. **整合 Spring 依赖注入**:为了利用 Spring 的依赖注入功能,你需要在 Jersey 资源类上添加 `@Component` 注解,使其成为 Spring 容器的一部分。然后,你可以在资源类中注入其他 Spring Bean,如服务层对象或...

    jersey+spring+srpingmvc实现上传

    2. **Spring框架**: Spring是一个全面的Java企业级应用开发框架,提供依赖注入、AOP(面向切面编程)、事务管理等功能。在文件上传中,Spring可以用于管理服务组件,例如数据存储和业务逻辑。 3. **Spring MVC**: ...

    基于jersey2.26_spring4+hibernate5+mysql的整合学习.zip

    【标题】"基于jersey2.26_spring4+hibernate5+mysql的整合学习.zip" 提供了一个综合性的学习资源,旨在教授如何将三个关键的技术框架——Jersey 2.26、Spring 4 和 Hibernate 5 整合在一起,并与 MySQL 数据库进行...

    spring 整合jersey最新的所有jar

    本文将详细介绍如何将Spring与Jersey进行整合,以便利用它们的优势构建一个强大的服务端应用。 **1. Spring与Jersey整合的意义** Spring框架提供了依赖注入(DI)和面向切面编程(AOP)等核心功能,可以方便地管理...

    Jersey2.13+spring3.2.3入门实例

    2. **添加依赖**:引入Jersey和Spring的相关库。在pom.xml文件中添加对应的Maven依赖,或者手动添加jar包到项目的lib目录。 3. **配置Jersey**:在web.xml中配置Jersey的Servlet,声明资源扫描路径和加载Spring上...

    jersey 2.2 +spring 3.1.0.RELEASE+hibernate 3.3.1.GA maven 配置文件

    标题 "jersey 2.2 +spring 3.1.0.RELEASE+hibernate 3.3.1.GA maven 配置文件" 暗示了一个集成开发环境,其中涉及到三个主要的技术组件:Jersey、Spring 和 Hibernate。这个配置文件是基于 Maven 构建系统的,用于...

    Spring+Jersey+JPA+Hibernate+MySQL整合

    在本项目中,Spring被用来整合其他技术,如Jersey、JPA和Hibernate,以实现一个完整的Web服务解决方案。 Jersey是Java RESTful Web Services(RESTful API)的实现,它基于JSR 311和JSR 339标准。通过使用Jersey,...

    jersey2.x+hibernate4+spring3+jquery

    4. **整合Spring与Hibernate**:使用Spring的LocalSessionFactoryBean和HibernateTransactionManager来管理和协调数据访问。 5. **创建RESTful资源**:使用Jersey注解创建REST服务,如`@Path`、`@GET`、`@POST`等,...

    jersey+spring2.5+hibernate3.3+jpa

    标题 "jersey+spring2.5+hibernate3.3+jpa" 指的是一种集成技术,将轻量级的RESTful服务框架Jersey、企业级应用框架Spring 2.5、持久层框架Hibernate 3.3以及Java Persistence API(JPA)结合在一起,以实现高效且...

Global site tag (gtag.js) - Google Analytics