当前位置: 首页 > 面试题库 >

Jersey REST WS错误:“在索引X的参数上缺少方法…的方法……”

巫马俊力
2023-03-14
问题内容

我收到以下错误:

Apr 09, 2013 12:24:26 PM com.sun.jersey.spi.inject.Errors processErrorMessages
SEVERE: The following errors and warnings have been detected with resource and/or provider classes:
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 0
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 1
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 2
SEVERE: Missing dependency for method public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String) at parameter at index 3
SEVERE: Method, public javax.ws.rs.core.Response com.package.ImportService.specifyLocalFile(java.lang.String,java.lang.String,java.lang.String,java.lang.String), annotated with POST of resource, class com.package.ImportService, is not recognized as valid resource method.

我有一个以前工作的POST方法,该方法需要一个Multipart数据(文件上传),然后从提交的表单中获取其他一些String数据字段,这是代码:

@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
    @FormDataParam("file") InputStream uploadedInputStream,
    @FormDataParam("file") FormDataContentDisposition fileDetail,
    @FormDataParam("param1") String param1,
    @FormDataParam("param2") String param2,
    @FormDataParam("param3") String param3) {
    ....
    ....
    return Response.status(200).entity(getEntity()).build();
}

该错误似乎与Jersey解释表单参数的方式有关。这是失败的代码:

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/local")
public Response specifyLocalFile(
    @FormDataParam("file") String fullFilePath,
    @FormDataParam("param1") String param1,
    @FormDataParam("param2") String param2,
    @FormDataParam("param3") String param3) {
    ....
    ....
    return Response.status(200).entity(getEntity()).build();
}

问题答案:

经过一段时间的搜寻之后,我最终回顾了一些有趣的案例,例如@FormParam的失败编组问题或缺少mulipartJAR依赖问题,这是我遇到的最接近的帖子,它是:“对方法缺少依赖”,我通过链接回答到此POST,因为我看不到该特定解决方案的最新解决方案。

与带有value
@FormDataParam的方法级@Consumes注释一起使用时,该问题似乎与注释有关MediaType.APPLICATION_FORM_URLENCODED

当我更改Method签名以用注释每个纯文本字段时@FormParam,异常消失了。检查下面的固定代码

@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Path("/local")
public Response specifyLocalFile()
    @FormParam("file") String fullFilePath,
    @FormParam("param1") String param1,
    @FormParam("param2") String param2,
    @FormParam("param3") String param3) {
    ....

如果接收到的数据类型不必处理MIME编码,则@FormParam注释将尝试通过序列化处理内容;相反,@FormDataParam注释需要在@Consumes注释具有时配置的一些特定处理MediaType.MULTIPART_FORM_DATA。希望这可以帮助。



 类似资料:
  • 问题内容: 我在数据库中创建2个表: 和: 当我在沼泽中运行查询时,出现此错误: SQL查询: 说:文档 #1822-无法添加外键约束。参照表“药物”中约束“ fk_med_pharmacy_medication1”的缺少索引 这些表已经存在,但是我更改了一个字段。 问题答案: 外索引中引用的列必须被索引。您需要在添加索引。实际上,这可能应该是表的主键。

  • 我对以下应用程序有问题,我一直在railsCasts的Rails 3中进行第211集验证,但当我尝试添加类EmailFormatValidator时,会触发一个错误 模型/user.rb lib/email_format_validator.rb /controller/user.rb # GET/users/new # GET/users/new . JSON def new @ user =

  • } 当我运行这段代码时,我得到以下错误: 我该怎么做来解决这个问题呢? 见下面的条件:给定一个从1到4(含)的数字,返回该数字的一个单词表示。例如,给定2,返回2。如果数字大于4,则返回短语“太大”。如果数字小于1,则返回短语too small。

  • 这就是我的REST控制器的样子 使用以下URI从Postman调用它 得到这个错误 } 我错过了什么?字符串变量的映射不正确吗?

  • 我是Groovy新手,但我正在尝试编写一个简单的递归方法来将层次路径解析为对象图。以下是我尝试过的: 但我得到以下错误: 我错过了什么?

  • 我正在Liferay控制面板服务器管理脚本控制台中测试一个快速groovy脚本。我需要尝试一下,看看是否可以使用Liferay API以编程方式添加新用户。 我是groovy的新手,可能犯了一个新手错误。我不知道为什么会出错,我一直在努力寻找解决办法。 我正在tomcat上使用Liferay 6.2 EE sp7。 我的脚本代码是 我得到的错误是: groovy.lang.缺少方法异常:没有方法的