spring和resteasy集成,构建restful风格服务

Springboot2.0整合RestEasy 一、首先搭建Springboot框架二、去Git地址 下载resteasy-spring-boot-starter文件并打成jar包(因为目前Maven仓库里没有)Porm文件里的加强防御代码可以删除掉三、添加Jar包到本地maven仓库命令如下:mvn install:install-file -DgroupId=org.jboss.resteasy -DartifactId=resteasy-... 阅读详情

spring和resteasy集成,三种主要的方式:

对于和jboss as7的集成不需要做任何工作,jboss默认集成了resteasy,只需要对业务pojo做一些jax-rs的注解标注即可。

我们这里讲的servlet容器是tomcat。开始前,先做一些准备工作,引入jar包,我使用的是maven。

jar包版本,添加到属性文件里去:

<properties>
<jackson-version>2.2.3</jackson-version>
  <resteasy-version>3.0.4.Final</resteasy-version>
      <httpcomp-version>4.2.5</httpcomp-version>
</properties>

下面是依赖jar

<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<version>${resteasy-version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</exclusion>
<exclusion>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpcomp-version}</version>
</dependency>
    <dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpcomp-version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore-nio</artifactId>
<version>${httpcomp-version}</version>
</dependency>

    <dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-spring</artifactId>
<version>${resteasy-version}</version>
<exclusions>
<exclusion>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jettison-provider</artifactId>
</exclusion>
</exclusions>
</dependency>
    <dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jackson2-provider</artifactId>
<version>${resteasy-version}</version>
</dependency>
    <dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxb-provider</artifactId>
<version>${resteasy-version}</version>
</dependency>

1、如果servlet容器支持的servlet版本大于等于3.0,那么需要做如下工作:

1、1

首先添加这个依赖,这个是servlet 3支持的初始化器

<dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-servlet-initializer</artifactId>
        <version>${resteasy-version}</version>
    </dependency>

1、2

web.xml文件的配置,增加以下配置

<!-- resteasy启动初始化监听器 -->
<listener>
      <listener-class>org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap</listener-class> 
    </listener>
    <!-- resteasy和spring整合,有了这个,org.springframework.web.context.ContextLoaderListener就不要了  -->
<listener>
    <listener-class>org.jboss.resteasy.plugins.spring.SpringContextLoaderListener</listener-class>  
  </listener>

<!-- <listener> -->
<!-- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> -->
<!-- </listener> -->

1、3

编写POJO

package com.vteba.service.rs.user;
import javax.inject.Inject;
import javax.inject.Named;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import com.vteba.user.model.User;
import com.vteba.user.service.spi.UserService;
import com.vteba.util.json.JacksonUtils;

@Path("/restUser")
@Named
public class RestUserService {
	@Inject
	private UserService userServiceImpl;
	
	@GET
	@Path("/list")
	@Produces(value = {MediaType.APPLICATION_JSON})
	public String list() {
		User user = userServiceImpl.get(4L);
		return JacksonUtils.get().toJson(user);
	}
}

1、4

启动tomcat,访问 http://ip:port/你的项目路径/restUser/list, 将返回json数据

2、第二种方式是。

如果你的servlet容器支持的servlet小于3,那么和上面第一种方式有些区别。

去掉这个依赖

<dependency>
        <groupId>org.jboss.resteasy</groupId>
        <artifactId>resteasy-servlet-initializer</artifactId>
        <version>${resteasy-version}</version>
    </dependency>

在web.xml中增加

<!-- 要指定前缀否则和spring mvc的url-pattern冲突。还有一种解决办法就是将spring mvc和reseasy整合在一起 -->

<servlet>
      <servlet-name>resteasy</servlet-name>
      <servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
      <context-param>
            <param-name>resteasy.servlet.mapping.prefix</param-name>
            <param-value>/rs</param-value>
        </context-param>
    </servlet>
  
    <servlet-mapping>
      <servlet-name>resteasy</servlet-name>
      <url-pattern>/rs/*</url-pattern>
    </servlet-mapping>


这样就OK了,访问地址也要加上前缀。

3、第三种就是将resteasy和spring mvc整合在一起,通过注解使他们共用spring mvc的控制器。

在spring bean配置文件中增加

<!-- Import basic SpringMVC Resteasy integration -->
    <import resource="classpath:springmvc-resteasy.xml"/>


web.xml中只需要保留你原来的spring mvc的配置。resteasy不需要做任何配置.

<servlet>
      <servlet-name>Spring</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet;</servlet-class>
   </servlet>

   <servlet-mapping>
      <servlet-name>Spring</servlet-name>
      <url-pattern>/*</url-pattern>
   </servlet-mapping>

编写控制器,类似如下:

@Controller
@Path(ContactsResource.CONTACTS_URL)
public class ContactsResource
{
   public static final String CONTACTS_URL = "/contacts";
   @Autowired
   ContactService service;

   @GET
   @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
   @Path("data")
   public Contacts getAll()
   {
      return service.getAll();
   }

   @PUT
   @POST
   @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
   @Path("data")
   public Response saveContact(@Context UriInfo uri, Contact contact)
         throws URISyntaxException
   {
      service.save(contact);
      URI newURI = UriBuilder.fromUri(uri.getPath()).path(contact.getLastName()).build();
      return Response.created(newURI).build();
   }

   @GET
   @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
   @Path("data/{lastName}")
   public Contact get(@PathParam("lastName") String lastName)
   {
      return service.getContact(lastName);
   }

   @POST
   @PUT
   @Consumes(MediaType.APPLICATION_FORM_URLENCODED)
   @Produces(MediaType.TEXT_HTML)
   public ModelAndView saveContactForm(@Form Contact contact)
         throws URISyntaxException
   {
      service.save(contact);
      return viewAll();
   }
   
   @GET
   @Produces(MediaType.TEXT_HTML)
   public ModelAndView viewAll()
   {
      // forward to the "contacts" view, with a request attribute named
      // "contacts" that has all of the existing contacts
      return new ModelAndView("contacts", "contacts", service.getAll());
   }
}

这样就可以将spring mvc和resteasy整合在一起了。

项目例子https://github.com/resteasy/Resteasy/tree/3.0.4.Final/jaxrs/examples/resteasy-springMVC

resteasy参考文档http://docs.jboss.org/resteasy/docs/2.2.1.GA/userguide/html/

有很丰富的内容可以自己学习

<!-- 要指定前缀否则和spring mvc的url-pattern冲突。还有一种解决办法就是将spring mvc和reseasy整合在一起 -->
Spring Boot 集成 resteasy篇 — jax-rs初步介绍和spring boot集成 Spring Boot 集成 resteasy篇 — jax-rs初步介绍和spring boot集成JAX-RS 是代表restful web service的一套规范API,JAX-RS规范基于JAVA编程语言,它是用来创建Restful 风格的web services服务的。Jax-rs使用一系列注解来简化java开发。 JAX-RS也称jsr339 (全称java specificati 阅读详情

相关推荐

Apache CXF实战之三 构建RESTful风格 Web Service

这篇文章介绍一下怎么通过CXF来发布RESTful的Web Service. 首先我们要知道apache cxf是一种开源 Web 服务框架。jax-rs和jax-ws是两种webservice风格。 1. 首先是实体类,注意其中的@XmlRootElement注解 package com.jing.cxf.vo; import java.util.Date; import

jingqiang521的专栏 1587

Java Web 学习笔记之十五:Spring整合RestEasy

Spring整合RestEasy (手动编码整合) restEasy 使用 通过restEasy + Jetty 搭建简单的 rest web service 问题描述 简述 Servlet容器配置restEasy使其能够对http请求进行转发至我们编写的Service对象中。 Servlet具有自己的生命周期,并不在Spring容器中进行管理,即Servlet与Spring隔...

johnson_moon的博客 2838

掌握RESTful服务开发所需关键jar包

本文还有配套的精品资源,点击获取 简介:REST是一种软件架构风格,适用于网络应用尤其是Web服务。在Java中开发RESTful接口依赖于多个关键jar包,包括JAX-RS标准API的实现(如Apache CXF、Jersey、RESTEasy),处理JSON数据交换的Jackson或Gson库,简化构建的Spring Boot,HTTP客户端请求处理的Apache Ht...

weixin_36184718的博客 994

Spring整合RESTEasy两种思路

RESTEasy 项目是 JAX-RS 的一个实现 官网地址 官方文档  本文的目的是:更好的处理Spring Bean和RESTEasy Resource之间的关系  思路有两种: RESTEasy自己管理Resource的生命周期,在Resource生成时将需要的Spring bean手动注入进来 依靠Spring容器来管理Resource,将Spring的Bean当...

quainter 654

Spring整合RestEasy示例工程源码

Spring整合RestEasy示例工程源码,Spring+Jetty+RestEasy

LAMMPS+Phonopy计算声子色散曲线

机器学习训练完势函数之后,需要对加以验证。对于晶体而言,色散曲线是其衡量计算是否准确的最重要标准,当然,还有能量,比热,RDF等性质。

qq_68842798的博客 3461

Spring和resteasy集成三种方式

对于和jboss as7的集成不需要做任何工作,jboss默认集成了resteasy,只需要对业务pojo做一些jax-rs的注解标注即可。 对于非Jboss的Servlet容器 spring和resteasy集成,主要有三种方式, 运行于Servlet版本大于等于3.0 运行于Servlet版本小于3.0 将resteasy和spring mvc整合在一起 基

GY的的专栏 3386

【牛股启动线】副图指标使用技术说明,图文案例分享,通达信炒股指标

如上图,在紫色线在黑色虚线上时,在出现紫色柱线时,通常会出现强势拉升的行情​。柱线加长加上紫色线上扬,进场跟随做多抓强势行情,紫色柱线和紫色线同时做多持续则可以继续持股。如上图,副图指标【牛股启动线】,指标信号包括紫色线走势信号和紫色柱线信号,以及底部的四条虚线技术信号​,还有一条绿色的参考线,一条黑色的虚线两天分档线。如上图,参考买点,紫色柱线开始出现时进场买点,在上图标记的位置对应的就是进场买点​。紫色柱线加长+紫色线上扬,多头共振持股,行情继续拉升阶段,持股待涨或顺势​进场做多。

weixin_69760830的博客 1906

Spring系列文章之 resteasy与spring集成

【代码】Spring系列文章之 resteasy与spring集成。

Coder_Boy_的博客 380

Jetson Nano摄像头选型与配置全攻略:CSI与USB接口实战指南

在嵌入式视觉与边缘计算项目中,摄像头作为核心传感器,其选型与配置直接影响系统性能。CSI(Camera Serial Interface)和USB(Universal Serial Bus)是两种主流接口,前者通过MIPI CSI-2协议直接与SoC通信,具备低延迟、高带宽特性,适合实时性要求高的应用;后者基于通用串行总线标准,即插即用,通用性强。在NVIDIA Jetson Nano平台上,合理选择摄像头接口并优化驱动配置,能充分发挥其GPU加速优势,提升图像处理流水线效率。本文聚焦Jetson Nano

weixin_29190651的博客 323

利用图层自动识别算法实现CAD到Revit BIM模型的高效转换 - VS2022与AutoCAD2024开发环境配置指南

本文详细介绍了如何配置VS2022与AutoCAD2024开发环境,并利用图层自动识别算法实现CAD图纸到Revit BIM模型的高效自动化转换。通过解析CAD图层的规律性,该算法能智能识别并分类墙、门、窗等构件,提取几何信息并驱动Revit自动创建三维模型,从而将传统繁琐的人工“翻模”工作转化为高效、准确的自动化流程,大幅提升BIM模型创建效率。

Apple的专栏 1124

RestEasy简介

 RestEasy技术说明简介RESTEasyRESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。作为一个JBOSS的项目,它当然能和JBOSS应用服务器很好地集成在一起。但是,它也能在任何运行JDK5或以上版本的Servlet容器中运行。R

bynhack的专栏 1万+

eCognition易康面向对象分类批量选择样本,批量导出shp

可以的,使用这个工具条最右边那个三角尺manual editing toolbar,这是用来直接指定类别的,咱们可以拿它选完以后把指定的类别转成训练样本。另一个好处是,这个选出来的样本可以直接导出成shp,但select sample是不可以的,只能导出TTAMask也就是栅格掩膜。如果要导出shp,要在转之前导出。中间那条有点点的红线就是我的鼠标轨迹,只要碰到的对象就会全部选中,然后一点3的那个按钮就直接全部划分为林地了,十分丝滑。在弹出来的工作条里,首先选择你的类别,比如这里选一个forest。

qq_61845364的博客 4068

SpringBoot整合Dubbo2.6.7使用resteasy和netty实现rest风格的服务

1、添加依赖jar <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> </dependency> ...

Brucelwl的博客 2001

Python金融数据获取工具库之baostock使用详解

在金融数据分析和量化交易中,获取准确及时的市场数据是非常重要的。baostock是一个专门为中国股市数据提供支持的 Python 库,它提供了免费的股票数据接口,用户可以方便地获取股票、指数、基金等各种金融数据。本文将详细介绍baostock库,包括其安装方法、主要特性、基本和高级功能,以及实际应用场景,帮助全面了解并掌握该库的使用。

Rocky006的博客 5342

【HALCON工业视觉应用探索】02. C# + Halcon铸件毛刺机器人打磨引导:点云处理从实验室到工业现场的全流程落地

摘要:铸件毛刺的自动化打磨是机械制造领域的重要难题,其随机性(高度0.1-3mm)和复杂工况导致人工打磨效率低(3分钟/件)、工伤率高。本文基于Halcon 24.11与.NET 6,构建了一套点云处理方案:通过线激光扫描仪获取三维点云,经预处理、毛刺检测、路径规划三大模块,引导机器人完成打磨。虚拟实验测试显示,对高度>1mm的毛刺检出率达100%,定位误差±0.08mm,但工业现场受油污、粉尘影响,性能降至检出率68-75%、处理时间>45秒。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1127

Resteasy ,从学会使用到了解原理

一、Rest简介及Resteasy产生背景1.1)了解Rest是什么:REST是英文RepresentationalState Transfer 的缩写,有中文翻译为“具象状态传输”。REST 这个术语是由 RoyFielding 在他的博士论文《Architectural Styles and the Design ofNetwork-based Software Architectures 》...

xudawenfighting的博客 1841

面向可扩展的 ABAP CDS:EXTEND VIEW 全面实战与工程化指引

摘要: 本文深入讲解ABAP CDS的EXTEND VIEW功能,帮助开发者在标准或自建模型上安全扩展字段与关联。核心内容包括: 作用:避免直接修改标准CDS,通过轻量扩展添加业务字段和关联,降低维护风险。 语法要点:需定义CDS扩展实体名和Dictionary Append View名,支持添加普通字段、关联,但不允许聚合或修改原有结构。 限制:不能扩展含聚合、UNION的视图,且扩展字段需避免命名冲突。 工程实践:建议使用客户命名空间,区分结构扩展与元数据扩展,并注意功能性变更需通过其他方式实现。 示例

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 393

RestEasy介绍

RestEasy技术说明  转载:http://blog.youkuaiyun.com/bynhack/article/details/6565809  简介  RESTEasy  RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。作为一个JB

dangzhizheng的博客 1816

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RESTful服务:Java的秘密花园通信

资源是服务操作的对象,通常由URI表示。

十年磨一剑,java开发各种业务系统 993

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

使用cxf、JAX-RS编写restful风格的webservice

一.restful风格介绍 比如说这个url   http://blog.youkuaiyun.com/king866/article/details/52092095 就是restful风格的 REST是一种风格,并且形成了自己的规则,构建这样的应用,应尽量遵循REST的原则。 REST的主要原则有: 用URL表示资源。资源就像商业实体一样,是我们希望作为API实体呈现的一部分。通常

qq_32930145的博客 740

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Resteasy

[code="java"] RestEasy技术说明 简介 RESTEasy RESTEasy是JBoss的一个开源项目,提供各种框架帮助你构建RESTful Web Services和RESTful Java应用程序。它是JAX-RS规范的一个完整实现并通过JCP认证。作为一个JBOSS的项目,它当然能和JBOSS应用服务器很好地集成在一起。但是,它也能在任何运行JDK5...

xiao1227372602的专栏 163
上一篇: RESTEasy hello world example
下一篇: Spring和resteasy集成三种方式
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值