@PathParam 和 @QueryParam
今天调试一个上传功能,客户端手持机发送数据,在URL中附加一个参数,后台用@PathParam接收,但是报错,无法获取这个参数。
url:http://192.168.1.3/web1_service/convert/vict_hj1000?unit=160106
代码:
- @Path("/vict_hj1000")
- @POST
- @Consumes(MediaType.MULTIPART_FORM_DATA)
- public Response createVictHJ1000Detect(@FormDataParam("name0") InputStream uploadedInputStream, @PathParam("unit") Long unit) throws JSONException {
@Path("/vict_hj1000")
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response createVictHJ1000Detect(@FormDataParam("name0") InputStream uploadedInputStream, @PathParam("unit") Long unit) throws JSONException {
也就是说,这个unit参数获取不到,怎么回事呢?
网上查了一遍,找到了原因,是url中参数的写法不对,导致后台的@PathParam无法获取,下面列出@PathParam和@QueryParam的区别:
1. @PathParam ,url中直接在斜杠后面添加参数值, 例如:www.a.com/student/001 ;
2. @QueryParam ,url中在后面添加【键值对】形式的参数,例如:www.a.com/student?id=001 ;
我的应用里面,url用的是键值对形式的参数,而后台用的是@PathParam,不匹配,因此无法获取。
解决办法就是修改URL,取消键值对,在斜杠后直接加参数值,改成:http://192.168.1.3/web1_service/convert/vict_hj1000/160106
并且后台修改@Path注解,改为:
- @Path("/vict_hj1000/{unit}")
@Path("/vict_hj1000/{unit}")
问题解决!
原文转载: http://blog.csdn.NET/zhouyingge1104/article/details/51034970
@PathParam 和 @QueryParam的更多相关文章
- RESTEasy:@FormParam、@PathParam、@QueryParam、@HeaderParam、@CookieParam、@MatrixParam说明
在第一RESTEasy教程我们已经学习了基本的Web服务和休息我们已经测试了一个简单的REST风格的Web服务.在本教程中,我们将显示如何将Web应用程序元素(形式参数,查询参数和更多)为REST风格 ...
- 2.restEasy中@PathParam和@QueryParam的区别
例如代码: @GET @Path("/{id}") @Produces(MediaType.APPLICATION_JSON) public T query(@PathParam( ...
- @QueryParam和@PathParam比较
来源:http://jackyrong.iteye.com/blog/1128364 1 先来看@queryparam Path("/users") public class Us ...
- @QueryParam和@PathParam使用方法比较
1 先来看@queryparam Path("/users") public class UserService { @GET @Path("/query") ...
- JAX-RS之queryparam、PathParam、DefaultValue、FormParam、Context、RestController等
这几天做东西接触了JAX-RS的东西,没有系统的从开始就学,只是单纯去复制粘贴的用,主要用到了几个Annotations变量,具体如下: queryparam.PathParam.FormParam. ...
- JAX-RS规范-常用注解浅析(WebServer)
一.@Path 若希望一个Java类能够处理REST请求,则这个类必须至少添加一个@Path("/")的annotation: 对于方法,这个annotation是可选的,如果不添 ...
- webServer-----Spring 集成cxf笔录
目前webserver主要有俩中方式:1,传统的webserver标准集成方式-生成WSDL的xml文档. 2, 基于restful风格的webserver java RESTful We ...
- JAX-RS(基于Jersey) + Spring 4.x + MyBatis构建REST服务架构
0. 大背景 众所周知,REST架构已经成为现代服务端的趋势. 很多公司,已经采用REST作为App, H5以及其它客户端的服务端架构. 1. 什么是JAX-RS? JAX-RS是JAVA EE6 引 ...
- Web service project中导入的库JAX-RS(Java EE 6.0新产品)
JAX-RS是JAVA EE6 引入的一个新技术. JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(R ...
随机推荐
- Scrum立会报告+燃尽图 03
此作业要求:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2190] 一.小组介绍 组长:王一可 组员:范靖旋,王硕,赵佳璐,范洪达,祁 ...
- 关于jsp之间href传参(中文)乱码问题
在A.jsp中有href传值 <a href=\"6.jsp?param="+rs.getString(2)+"\">" 在B.jsp中使 ...
- 第十一次作业 - Alpha 事后诸葛亮(团队)
软工 · 第十一次作业 - Alpha 事后诸葛亮(团队) 组长本次作业链接 现代软件工程 项目Postmortem 设想和目标 1.我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场 ...
- HDU 4055 Number String dp
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4055 Number String Time Limit: 10000/5000 MS (Java/O ...
- lintcode-436-最大正方形
436-最大正方形 在一个二维01矩阵中找到全为1的最大正方形 样例 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 返回 4 标签 动态规划 爱彼迎 脸书 思路 使用 ...
- lintcode-433-岛屿的个数
433-岛屿的个数 给一个01矩阵,求不同的岛屿的个数. 0代表海,1代表岛,如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右为相邻. 样例 在矩阵: [ [1, 1, 0, 0, 0], ...
- ubuntu 手动apache记录
1.下载apache tar -xvzf httpd.xx 解压 2.下载安装pcre Download PCRE from PCRE.org 解压,进入文件夹中 ./configure --pre ...
- 【设计模式】C++中的单例模式
讲解来自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4281275&uid=26611383 由于使用了POSIX函 ...
- puthon进程开发
进程 本节目录 一 背景知识 二 什么是进程 三 进程调度 四 并发与并行 五 同步\异步\阻塞\非阻塞 六 进程的创建与结束 七 multiprocess模块 八 进程池和mutiprocess.P ...
- MySQL二进制安装部署
#使用二进制包安装mysql -linux-glibc2.-x86_64.tar.gz /data/ -linux-glibc2.-x86_64.tar.gz -C /data/ -linux-gli ...