【发布时间】:2012-04-25 10:31:19
【问题描述】:
我有一个类似的网络服务
@GET
@Produces("application/json")
@Path("{parameter1}/july/{param2},{param3},{param4}/month")
public Month getResult(@PathParam("parameter1") String parameter1, @PathParam("param2") PathSegment param2 , @PathParam("param3") PathSegment param3, @PathParam("param4") PathSegment param4) {
return action.getResult(parameter1, new Integer(param2.getPath()), new Integer(param3.getPath()), new Integer(param3.getPath()));
}
如果我从我的测试类中调用这个 Web 服务,它可以正常工作;但是如果我通过浏览器调用它,我会收到找不到服务的消息。
我通过浏览器使用的网址是
http://localhost:8080/WebApp/services/seating/mylogin/july/1,0,0/month
如果我使用 url 作为
http://localhost:8080/WebApp/services/seating/mylogin/fly/1/0/0/month
并相应地更改服务中的路径它可以正常工作,但要求是使用逗号而不是斜杠。有什么方法可以在 url 中使用带有逗号分隔参数的 web 服务?
【问题讨论】:
-
+1 写得很好的问题。这些天在 SO 上很难找到他们。
-
为什么您使用 URL 路径将参数传递给您的服务,而不是作为标准 GET 参数发送?例如,我会将服务部署到
/WebApp/services/seating,然后让客户端调用像/WebApp/services/seating?param1=mylogin&param2=fly&param3=1&param4=0...这样的URL。 -
我无法使用?然后是参数,所有的 url 都在 js 文件中,并根据 UI 的请求动态调用,在 w3 建议中,我看到浏览器在遇到逗号时删除参数并在逗号之前查找资源,我猜这是导致问题的原因,我的测试类调用服务没有任何问题并返回结果
-
@RaviMishra 那么哪个答案对您有帮助?您可以通过投票将其标记为“此答案很有用”吗?
标签: java web-services jax-rs restful-url