下面的代码可以工作
@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.[对于public com.trimble.paas.apicloud.metricscollector.resource.MetricsResource.postMetricsData(java.lang.String,java.lang.String类型的参数,在索引%1处找不到致命的注入源)。com.trimble.paas.apicloud.metricscollector.resource.MetricsResource.postMetricsData(java.lang.String,=‘ResourceMethod{httpMethod=POST,producedTypes=#en0#=com.trimble.paas.apicloud.metricscollector.resource.MetricsResource.postMetricsData(java.lang.String,/json,producedTypes=[],suspended=false,suspendTimeout=0,suspendTimeoutUnit=MILLISECONDS,invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class com.trimble.paas.apicloud.metricscollector.resource.MetricsResource,handlerConstructors=org.glassfish.jersey.server.model.HandlerConstructor@59916e0f},com.trimble.paas.apicloud.metricscollector.resource.MetricsResource.postMetricsData(java.lang.String,httpMethod=POST producedTypes= java.lang.String),parameters=[ type=class java.lang.String,source=null,defaultValue=null,type=class java.lang.String,source=apiId,defaultValue=null],},org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:394) at org.glassfish.jersey.server.ApplicationHandler.lambda$initialize$1(ApplicationHandler.java:316) at org.glassfish.jersey.internal.Errors.process(Errors.java:316) at org.glassfish.jersey.internal.Errors.process(Errors.java:298) at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:256) at org.glassfish.jersey的nameBindings=[]}']。server.ApplicationHandler.initialize(ApplicationHandler.java:315)在org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:282)在org.glassfish.jersey.servlet.WebComponent.(WebComponent.java:335)在org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:178)在org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:370)在javax.servlet.GenericServlet.init(GenericServlet.java:158)在org.apache.catalina。core.StandardWrapper.initServlet(StandardWrapper.java:1144) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:789) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:133) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) atorg.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)在org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)在org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)在org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)在org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745)
知道我错过了什么吗?
发布于 2019-01-03 22:25:02
您是否可以检查@PathParam的导入。尝试使用导入javax.ws.rd;
https://stackoverflow.com/questions/52477403
复制相似问题