java consumes_@Consumes不适用于JSON

java consumes_@Consumes不适用于JSON我有以下休息服务 Path add POST Consumes MediaType APPLICATION JSON publicRespon SomeEntityen entity someService addEntity entity returnRespon ok Entityaddedw entity getId

我有以下休息服务:

@Path(“/add”)

@POST

@Consumes(MediaType.APPLICATION_JSON)

public Response add(SomeEntity entity) {

entity = someService.addEntity(entity);

return Response.ok(“Entity added with id=” + entity.getId()).build();

}

将我的应用程序部署到Wildfly后,我使用json发送HTTP请求: {“id”:0,”param1″:value1,”param2″:value2} 并收到以下错误消息:

Bad arguments passed to org.jboss.resteasy.spi.metadata.ResourceMethod@4ab32ab7 ( java.util.LinkedHashMap {id=0, param1=value1, param2=value2} ) ,状态码为500 .

我该怎么办?如何使我的应用程序从json而不是 LinkedHashMap 消耗实体?

更新:实体类代码不包含任何有趣的内容,只有 long id 和两个带有一些jpa注释的 String 字段 .

UPDATE2:完整的堆栈跟踪:

WARN [org.jboss.resteasy.core.ExceptionHandler](默认任务-2)执行POST / rest / add失败:org.jboss.resteasy.spi.InternalServerErrorException:传递给org.jboss.resteasy.spi.metadata的错误参数.ResourceMethod @ 4ab32ab7(java.util.LinkedHashMap {id = 0,param1 = value1,param2 = value2})org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:177)[resteasy-jaxrs-3.0 . 8.Final.jar:] org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)[resteasy-jaxrs-3.0.8.Final.jar:] org.jboss.resteasy.core.ResourceMethodInvoker .invoke(ResourceMethodInvoker.java:250)[resteasy-jaxrs-3.0.8.Final.jar:] org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)[resteasy-jaxrs-3.0.8 .Final.jar:] org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)[resteasy-jaxrs-3.0.8.Final.jar:] at org.jboss.resteasy.core.SynchronousDispatcher . invoke(SynchronousDispatcher.java:179)[r esteasy-jaxrs-3.0.8.Final.jar:] org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:220)[resteasy-jaxrs-3.0.8.Final.jar:]在org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:56)[resteasy-jaxrs-3.0.8.Final.jar:] at org.jboss.resteasy.plugins.server.servlet . HttpServletDispatcher.service(HttpServletDispatcher.java:51)[resteasy-jaxrs-3.0.8.Final.jar:]在javax.servlet.http.HttpServlet.service(HttpServlet.java:790)[jboss-servlet-api_3.1_spec- 1.0.0.Final.jar:1.0.0.Final] at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)[undertow-servlet-1.0.15.Final.jar:1.0.15 . 最终]在io.undertow.servlet.handlers的io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)[undertow-servlet-1.0.15.Final.jar:1.0.15.Final] .ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)[undero w-servlet-1.0.15.Final.jar:1.0.15.Final]在io.undertow.server.handlers.PredicateHandler的org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) . handleRequest(PredicateHandler.java:25)[undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)[下载] -servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)[undertow-servlet-1.0.15.Final.jar :io.undertow的io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)[undertow-core-1.0.15.Final.jar:1.0.15.Final]:1.0.15.Final] . security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)[undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.se curity.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61)[undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58) [undertow-core-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)[undertow-servlet-1.0.15.Final .jar:1.0.15.Final] at io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)[undertow-core-1.0.15.Final.jar:1.0.15.Final] at io . 来自org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler的undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)[undertow-core-1.0.15.Final.jar:1.0.15.Final] . handleRequest(JACCContextIdHandler.java:61)at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)[undertow-c ore-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)[undertow-core-1.0.15.Final.jar:1.0 . 15.Final] at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240)[undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.servlet.handlers .ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)[undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at在io.undertow.servlet.handlers.ServletInitialHandler $ 1中的io.undertow.servlet.handlers.ServletInitialHandler.access $ 000(ServletInitialHandler.java:73)[undertow-servlet-1.0.15.Final.jar:1.0.15.Final] . handleRequest(ServletInitialHandler.java:146)[undertow-servlet-1.0.15.Final.jar:1.0.15.Final] at io.undertow.server.Connectors.executeRootHandler(Connectors.java:177)[undertow-core-1.0 .15.Final.jar:1.0.15.Final] at io.undertow.server.HttpServerExchange $ 1.run(HttpServerExchange.java:727)[undertow-core-1.0.15.Final.jar:1.0.15.Final]在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[rt.jar:1.7.0_45] java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)[rt.jar: 1.7.0_45]在java.lang.Thread.run(Thread.java:744)[rt.jar:1.7.0_45]引起:java.lang.IllegalArgumentException:参数类型不匹配sun.reflect.NativeMethodAccessorImpl.invoke0(Native方法)[rt.jar:1.7.0_45] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeM ethodAccessorImpl.java:57)[rt.jar:1.7.0_45] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)[rt.jar:1.7.0_45] at java.lang.reflect.Method.invoke(方法.java:606)[rt.jar:1.7.0_45]在org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)[resteasy-jaxrs-3.0.8.Final.jar:] ..还有35个

UPDATE3:我没有找到任何解决方案,所以我用 @FormParam 而不是json替换了方法参数和 @Consumes . 但无论如何都需要解决方案 .

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213194.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午6:21
下一篇 2026年3月18日 下午6:22


相关推荐

  • 语音检测_自适应遗传算法

    语音检测_自适应遗传算法自适应回声消除算法欢迎留言交流AEC算法早期用在Voip,电话这些场景中,自从智能设备诞生后,智能语音设备也要消除自身的音源,这些音源包括音乐或者TTS机器合成声音。本文基于开源算法阐述AEC的原理和实现,基于WebRTC和speex两种算法,文末会附上两种算法的matlab实现。回声消除原理回声消除的基本原理是使用一个自适应滤波器对未知的回声信道:ω\omega进行参数辨识,根据扬声器信号与产

    2025年8月22日
    4
  • 看看上了FusionIO后一条SQL的平均耗时比较

    看看上了FusionIO后一条SQL的平均耗时比较直接上图 天壤之别啊 这个设备的性能和他的价格一样高 目前我们用它来 MemoryDIsk 之间的缓存 淘宝直接拿它存储数据 更牛

    2026年3月19日
    2
  • jQuery 鼠标滚轮插件 mousewheel

    jQuery 鼠标滚轮插件 mousewheellt DOCTYPEhtml gt lt html gt lt head gt lt title gt jQuery 鼠标滚轮插件 mousewheel lt title gt lt metahttp equiv Content Type content text html charset utf 8 gt lt

    2026年3月17日
    2
  • smarty怎么用_item怎么用

    smarty怎么用_item怎么用1、简介含义:Smarty是PHP的一个引擎模板,可以更好的进行逻辑与显示的分离,即我们常说的MVC,这个引擎的作用就是将C分离出来。环境需求:PHP5.2或者更高版本我使用的环境是:PHP5.

    2022年8月5日
    8
  • MPU6050开发 — 数据分析

    MPU6050开发 — 数据分析如需转载请注明出处 https blog csdn net article details 上一篇文章结尾 留了一些思考问题 现在只是得到 MPU6050 的一些原始数据 还未做滤波处理 接下来先讲 加速度计和陀螺仪的计算公式 然后进一步延伸出姿态滤波 一 加速度计 1 计算公式参看 Arduino 教程 MPU6050 的数据获取 分

    2026年3月16日
    2
  • UML工具

    UML工具UML工具graphvizplantumldraw.iodesktopyEd

    2022年7月12日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号