当前位置: 首页 > 知识库问答 >
问题:

泽西json POST没有DTO

谭兴学
2023-03-14

下面的代码有效

@POST
@Path("/{apiId}")
@Consumes(MediaType.APPLICATION_JSON)
public Response postMetricsData(String metricsData) {
    System.out.println(metricsData);
    return Response.ok().build();
}

下面的代码是抛出错误

@POST
@Path("/{apiId}")
@Consumes(MediaType.APPLICATION_JSON)
public Response postMetricsData(String metricsData, @PathParam("apiId") String apiId) {
    System.out.println(metricsData);
    return Response.ok().build();
}

低于异常

rg.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.

[[FATAL]找不到public javax类型参数的注入源。ws。rs.core。回复com。特里姆布尔。帕斯。大声点。metricscollector。资源MetricsResource。索引1处的PostMetricData(java.lang.String,java.lang.String)。;source='ResourceMethod{httpMethod=POST,consumedTypes=[application/json],producedTypes=[],suspendTimeout=0,suspendTimeoutUnit=毫秒,invocable=invocable{handler=ClassBasedMethodHandler{handlerClass=class com.trimble.paas.apicCloud.metricscollector.resource.MetricsResource,handlerConstructors=[org.glassfish.jersey.server.model]。HandlerConstructor@59916e0f]},definitionMethod=public javax。ws。rs.core。回复com。特里姆布尔。帕斯。大声点。metricscollector。资源MetricsResource。PostMetricData(java.lang.String,java.lang.String),参数=[参数[type=class java.lang.String,source=null,defaultValue=null],参数[type=class java.lang.String,source=Apid,defaultValue=null],responseType=class javax。ws。rs.core。响应},nameBindings=[]}']位于组织。玻璃鱼。运动衫服务器ApplicationHandler。在org上初始化(ApplicationHandler.java:394)。玻璃鱼。运动衫服务器ApplicationHandler。lambda$initialize$1(ApplicationHandler.java:316)位于org。玻璃鱼。运动衫内部的错误。在org上处理(Errors.java:316)。玻璃鱼。运动衫内部的错误。org上的进程(Errors.java:298)。玻璃鱼。运动衫内部的错误。org上的processWithException(Errors.java:256)。玻璃鱼。运动衫服务器ApplicationHandler。在org上初始化(ApplicationHandler.java:315)。玻璃鱼。运动衫服务器ApplicationHandler。(ApplicationHandler.java:282)位于org。玻璃鱼。运动衫servlet。网络组件。(WebComponent.java:335)网址:org。玻璃鱼。运动衫servlet。ServletContainer。org上的init(ServletContainer.java:178)。玻璃鱼。运动衫servlet。ServletContainer。javax上的init(ServletContainer.java:370)。servlet。通用服务。org上的init(GenericServlet.java:158)。阿帕奇。卡塔琳娜。果心标准包装纸。org上的initServlet(StandardWrapper.java:1144)。阿帕奇。卡塔琳娜。果心标准包装纸。在org上分配(StandardWrapper.java:789)。阿帕奇。卡塔琳娜。果心标准包装阀。在org上调用(StandardWrapperValve.java:133)。阿帕奇。卡塔琳娜。果心标准连接阀。在org上调用(StandardContextValve.java:96)。阿帕奇。卡塔琳娜。验证者。AuthenticatorBase。在org上调用(AuthenticatorBase.java:493)。阿帕奇。卡塔琳娜。果心标准阀门。在org上调用(StandardHostValve.java:140)。阿帕奇。卡塔琳娜。阀门。打开阀门。在org上调用(ErrorReportValve.java:81)。阿帕奇。卡塔琳娜。果心标准引擎版本。在org上调用(StandardEngineValve.java:87)。阿帕奇。卡塔琳娜。连接器。郊狼适应者。服务(CoyoteAdapter.java:342)位于org。阿帕奇。郊狼。http11。HTTP11处理器。org上的服务(Http11Processor.java:800)。阿帕奇。郊狼。抽象过程光。org上的进程(AbstractProcessorLight.java:66)。阿帕奇。郊狼。AbstractProtocol$ConnectionHandler。org上的进程(AbstractProtocol.java:806)。阿帕奇。公猫util。网NioEndpoint$SocketProcessor。doRun(NioEndpoint.java:1498)位于org。阿帕奇。公猫util。网SocketProcessorBase。在java上运行(SocketProcessorBase.java:49)。util。同时发生的线程池执行器。java上的runWorker(ThreadPoolExecutor.java:1142)。util。同时发生的ThreadPoolExecutor$Worker。在org上运行(ThreadPoolExecutor.java:617)。阿帕奇。公猫util。线程。TaskThread$wrappingranable。在java上运行(TaskThread.java:61)。朗。丝线。运行(Thread.java:745)

知道我错过了什么吗?

共有1个答案

松旻
2023-03-14

你会检查@PathParam的导入吗。尝试使用导入javax.ws.rd;

 类似资料:
  • 我目前使用的是球衣 我现在要做的是设置泽西,这样当查询参数进来时(比如缩进),我可以告诉Jackson以“更漂亮的格式,也就是缩进”序列化JSON。您可以通过使用SerializationConfig.Feature.INDENT_OUTPUT配置JSON映射器来轻松地告诉Jackson这样做。 问题是,我如何在每个请求的基础上获取一个queryparam并使用它来修改Jackson的输出?

  • 我正在泽西岛应用程序中使用 CDI。在根资源上,CDI 注入按预期工作,但每当我返回子资源时,CDI 注入源都不可用。 具有子资源定位器的根资源: 子资源: 错误: 我正在使用和Weld依赖项,在Undertow上运行,并将Weld servlet侦听器添加到部署中。 同样,对根资源的相同注入确实有效。< code>@Named("name ")字符串由< code>@ApplicationSco

  • 我想为使用泽西岛开发的 ReST 服务生成 Swagger API 文档。 我已经浏览了 Swagger API 文档,并根据文档进行了部署。 但是当我访问URL(http://localhost:8080/MySwagger/swagger.json)时,我会得到以下输出。 上面那个不包含我们开发的API 我尝试了文档中提到的各种选项,但结果是相同的。 我已经在 tomcat 7.0.68 中部

  • 问题内容: 我在Spring启动项目中有一个与Jackson配置有关的问题 如Spring Boot博客中所述 我尝试自定义对象序列化。 在我的配置中添加新的配置bean之后 当我尝试输出类User的实例时,json结果不在CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES中 json输出是: 并不是 也许我需要在Jersey配置中注册一些东西才能激活我的自定义ob

  • 我正在尝试使用JAX-RS(Jersey)构建JSON RESTful Webservice。我也在使用Maven构建应用程序。 我的第一个方法是 pom之后。xml- 所以我补充道 到我的pom文件。其他lib文件(例如jackson-cors-asl-1.7.1.jar、jackson-jaxrs-1.7.1.jar、jaxb impl,…)也可以在生成的war文件中找到//编辑:它还下载st

  • 我正在开发一个REST Web服务,其中我使用URL中的ID来指定患者,如下所示: <代码>WS/服务/患者/1 其中“1”是患者的id。所以,在代码中,我这样指定: 我在一个例子中看到了它,但是我的失败了。我得到了这个错误: 通用域名格式。太阳运动衫应用程序编程接口。容器ContainerException:方法,public void PresentationLayer。PatientReso