gpt4 book ai didi

java - 在方法中同时读取路径参数和 json 正文请求

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:06:50 24 4
gpt4 key购买 nike

当我的方法看起来像这样时,我收到以下错误

@POST
@Path("/share")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public Response shareit(@PathParam("USERID") String userID,Map<String,String[]> paramValue){

.....
.....

}

如果我从参数 @PathParam("USERID") String userID 或 Map paramValue 中删除其中一个,它就可以正常工作。我不能同时读取路径参数和读取 json 正文请求吗?

错误:

Dec 01, 2013 11:30:20 PM org.apache.catalina.core.StandardContext loadOnStartup
SEVERE: Servlet /CloudServices threw load() exception
org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
[[FATAL] No injection source found for a parameter of type public javax.ws.rs.core.Response com.app.cloud.share.Share.shareit(java.lang.String,java.util.Map) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[application/json], producedTypes=[application/json], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class com.rjil.cloud.share.Share, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@54fe88f3]}, handlingMethod=public javax.ws.rs.core.Response com.rjil.cloud.share.Share.shareit(java.lang.String,java.util.Map), parameters=[Parameter [type=class java.lang.String, source=USERID, defaultValue=null], Parameter [type=interface java.util.Map, source=null, defaultValue=null]], responseType=class javax.ws.rs.core.Response}, nameBindings=[]}']
at org.glassfish.jersey.server.ApplicationHandler.initialize(ApplicationHandler.java:427)
at org.glassfish.jersey.server.ApplicationHandler.access$500(ApplicationHandler.java:162)
at org.glassfish.jersey.server.ApplicationHandler$3.run(ApplicationHandler.java:287)
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:289)
at org.glassfish.jersey.internal.Errors$2.call(Errors.java:286)
at org.glassfish.jersey.internal.Errors.process(Errors.java:315)
at org.glassfish.jersey.internal.Errors.process(Errors.java:297)
at org.glassfish.jersey.internal.Errors.processWithException(Errors.java:286)
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:284)
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:302)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:167)
at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:349)
at javax.servlet.GenericServlet.init(GenericServlet.java:160)
at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1280)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1193)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5176)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5460)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3954)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1345)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1530)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1540)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1519)
at java.lang.Thread.run(Thread.java:744)

最佳答案

您似乎没有在任何 @Path 注释中定义 {USERID} 占位符(它不在您的资源方法中,我猜它不在 @Path 资源类上的注释)。您通常需要将 @PathParam("USERID")@Path 中的模板匹配:

@Path("/share/{USERID}")

关于java - 在方法中同时读取路径参数和 json 正文请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20309131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com