JAVA- Jersey使用示例

0 概述

本文档主要讲述JAVA-Jersey的使用说明,并给出了示例。

1 前提条件

  1. java安装并配置好相应的路径
    在这里插入图片描述

  2. 安装java的IDE Eclipse或者IDEA
    进入各自的官网安装即可:
    Eclipse: https://www.eclipse.org/
    IDEA: https://www.jetbrains.com/

  3. 安装Postman (便于调试)
    进入官网 https://www.getpostman.com/,下载安装即可。

2 Jersey的使用

以下以eclipse为例

2.1 创建maven项目

File >> new >> project >> maven project
在这里插入图片描述
在这里选择导入Jersey官网提供的快速构建包,如果没有该选项可以按如下操作:
https://jersey.github.io/documentation/latest/getting-started.html
选择Add Archetype…
在这里插入图片描述
添加如下内容:
在这里插入图片描述
然后填写Group id 和Artifact id即可完成maven工程的创建
在这里插入图片描述

2.2 查看新建的工程项目

创建好项目之后,我们就可以看到官方例子啦,主要有两个类Main.java 和MyResource.java,其中MyResource.java就是我们Restful资源,Main.java就是启动restful服务的类。打开工程中的pom.xml文件,并输入以下内容完成maven工程依赖的添加:
在这里插入图片描述
在这里插入图片描述

2.3 运行示例

运行Main.java后,在浏览器输入http://localhost:8080/myapp/myresource,可以看到如下输则表示简单例子运行成功。

在这里插入图片描述
注意这里的8080为Jersey服务开放的接口,若被其他应用占用,则会报错,可以修改为未被占用的端口进行测试。

2.4 Jersry其他方法调用

@GET方式:提供资源的只读访问
在MyResource.java,新建@GET方法
在这里插入图片描述
@Path表示指定的访问路径
@Produces 指定http请求的MIME类型数组类型默认是*/*,表示任意的MIME类型
在Postman中输入 http://localhost:8080/myapp/myresource/test可看到如下返回内容:
在这里插入图片描述

@QueryParam
QueryParam查询URI里面?之后的参数进行解析
在这里插入图片描述
在Postman中输入http://localhost:8080/myapp/myresource/chen,并指定对应的参数的值可看到如下返回内容:
在这里插入图片描述

上图中的key和value分别代表参数的名称和值。
@Path()中设置了传参的方式,若上例子中Path(“/{param1}/{param2}/{param3}”),则这时候的传参方式应该是http://localhost:8080/…/…/…/param1=value1/param2=value2/param3=…
在这里插入图片描述
输入 http://localhost:8080/myapp/myresource/陈/18/男 可看到:
在这里插入图片描述
@Pathparam(“value”)检索url中的value自动与参数匹配,此时使用@Queryparam参数就会出现错误,因为@Queryparam参数指定格式与@Pathparam参数不一样。
@Fromparam参数以表单的形式,访问的URI被解析成form。
@Headparam参数则是获取http请求头中的参数值。
在这里插入图片描述
此时我们在Postman中访问:http://localhost:8080/myapp/myresource/head
在这里插入图片描述

可以看到此时我们不需要在URL中输入参数都可以进行相应的访问。这里的@DefaultValue(“18”)为初始默认值设置,当没有指定参数时输入的默认值为“18”。

@POST方式:用于更新现有资源或者创建一个新资源。

例如重写上述/head访问方法,在该访问中新增加一个id参数。并把id设置为@pathparam参数,然后在Postman中输入http://localhost:8080/myapp/myresource/head/02访问:在这里插入图片描述
在这里插入图片描述

其他方式
@PUT方式:用于创建一个新资源。(客户端需要提供改变后的完整资源)
@PATCH(UPDATE):表示在服务器更新资源(客户端需要提供改变的属性【可以简单理解为补丁】)。
@DELETE方式:用于移除一个资源。
@OPTIONS方式:用于获取资源上支持的操作。
@HEAD方式:只返HTTP header,不返回HTTP body。获得一个资源的元数据,比如一个资源的hash值或者最后修改日期。

2.5 Jersey实现jar包的调用

首先,把新建的项目导出为jar包。选中需要导出的项目,右击选择Export,如图:
然后选择JAR file,设置导出的路径即可。我们需要用到其他jar包时,也可以在maven官方仓库中进行查找,下载并导入即可。
Maven中央仓库地址为:
https://mvnrepository.com/
在这里插入图片描述
这时我们可以在我们刚刚新建的Jersey_test项目中导入外部jar包。选中Jersey_test项目,右击选择Build path,Configure build path…,如图:
在这里插入图片描述
选择Add External JARs,选择jar包的路径,导入即可。导入后可以看到我们的jar包:
在这里插入图片描述
下图分别是原来jar包中的内容,和新的@POST测试方法
在这里插入图片描述
在这里插入图片描述
在Postman中运行即可看到如下测试结果:
在这里插入图片描述

3 Jersey实现对FastDFS的调用

在开始之前请先完成FastDFS集群环境的搭建,并实现可以使用JAVA调用,详情请看之前我的文章《搭建分布式FastDFS集群》、《FastDFS-JAVA-Client使用示例》。
导出FastDFSTest的jar包,并导入到Jersy_test项目中。
在这里插入图片描述
在MyResource中新建@POST方法
在这里插入图片描述
这里的multipart/form-data,表示不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。这里我们的参数包含路径,因此要采用这样的传参方式。另外两种常见的传参方式为:
application/x-www-form-urlencoded 在发送前编码所有字符(默认);text/plain 空格转换为 “+” 加号,但不对特殊字符编码。file_path和file_type分别代表文件上传的路径和文件类型。
在Postman中运行如图:
在这里插入图片描述

此时进入已经搭建好的FastDFS集群中的Storageserver中,可以看到我们通过POST方式上传的文件已经上传成功了。
在这里插入图片描述
在这里插入图片描述

在浏览器中输入:
storageseverip/group1/M00/00/00/rBAPQV0lXOiAdHNHAABwDWWmycs944.jpg即可看到刚刚通过POST方式上传的文件。

在这里插入图片描述

同时也可以实现文件的下载、删除等功能。
实现文件的下载
在这里插入图片描述
此时在Postman中执行
在这里插入图片描述

进入D盘下的temp文件夹中即可发现该图片已成功下载
在这里插入图片描述
实现文件的删除
在这里插入图片描述
在这里插入图片描述

此时完成了该文件的删除,进入storagesever查看,该文件确实已被删除
在这里插入图片描述
在这里插入图片描述

`spring-boot-starter-jersey` 是 Spring Boot 官方提供的一个集成 JAX-RS (Jersey) 的 Starter,通过引入该 Starter 可以很方便的集成 JAX-RS 技术栈。 Jersey 是 JAX-RS 的一个参考实现,它提供了一个基于 Servlet 的 Web 容器,使得开发人员可以很容易地创建 RESTful Web 服务。在使用 Spring Boot 集成 Jersey 时,我们只需要引入 `spring-boot-starter-jersey` 依赖就可以了。 下面是一个示例,演示了如何在 Spring Boot 中使用 Jersey: 1. 添加依赖 在 `pom.xml` 文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jersey</artifactId> </dependency> ``` 2. 创建 REST 资源类 创建一个 REST 资源类,并使用 `@Path` 和 `@Produces` 注解定义资源路径和返回数据的类型。 ```java import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("hello") public class HelloResource { @GET @Produces(MediaType.TEXT_PLAIN) public String sayHello() { return "Hello, World!"; } } ``` 3. 创建 Application 类 创建一个 `Application` 类,并使用 `@ApplicationPath` 注解定义应用程序的根路径。 ```java import org.glassfish.jersey.server.ResourceConfig; import org.springframework.stereotype.Component; import javax.ws.rs.ApplicationPath; @Component @ApplicationPath("/api") public class JerseyConfig extends ResourceConfig { public JerseyConfig() { register(HelloResource.class); } } ``` 4. 启动应用程序并测试 启动应用程序,访问 URL http://localhost:8080/api/hello,您应该可以看到 "Hello, World!" 这个字符串。 这就是在 Spring Boot 中集成 Jersey 的基本步骤。您可以根据您的需求,使用更多的 JAX-RS 注解来定义 RESTful 资源类的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值