[jira] [Commented] (CXF-5973) Response.created(URI) resolves relative URIs relative to the servlet URI instead of the request URI
[ https://issues.apache.org/jira/browse/CXF-5973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16123103#comment-16123103 ] Tobias Oberlies commented on CXF-5973: -- https://java.net/jira/browse/JAX_RS_SPEC-483 was moved to https://github.com/jax-rs/api/issues/488 > Response.created(URI) resolves relative URIs relative to the servlet URI > instead of the request URI > --- > > Key: CXF-5973 > URL: https://issues.apache.org/jira/browse/CXF-5973 > Project: CXF > Issue Type: Bug > Components: JAX-RS >Affects Versions: 2.7.5, 2.7.12 >Reporter: Tobias Oberlies > > According to the [JavaDoc of > javax.ws.rs.core.Response.created(URI)|http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/Response.html#created%28java.net.URI%29], > relative URIs should be resolved relative to the request URI. > However, CXF resolves the URI relative the the servlet path of the > CXFNonSpringJaxrsServlet. > Example: > For a resource at path {{/account/someaccount/entries}} served by a servlet > registered at {{/service/b/api}}, the following code should result in a > response with the HTTP header {{Location: > http://localhost/service/b/api/account/someaccount/entries/newentry}} > {noformat} > @POST > public Response create() { > URI location = new URI("newentry"); > return Response.created(location).build(); > } > {noformat} > However, the header has the incorrect value {{Location: > http://localhost/service/b/api/newentry}} -- This message was sent by Atlassian JIRA (v6.4.14#64029)
[jira] [Commented] (CXF-5973) Response.created(URI) resolves relative URIs relative to the servlet URI instead of the request URI
[ https://issues.apache.org/jira/browse/CXF-5973?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=14112244#comment-14112244 ] Sergey Beryozkin commented on CXF-5973: --- See https://java.net/jira/browse/JAX_RS_SPEC-483. In meantime please use UriInfo.getRequestUriBuilder() to build an absolute Location Response.created(URI) resolves relative URIs relative to the servlet URI instead of the request URI --- Key: CXF-5973 URL: https://issues.apache.org/jira/browse/CXF-5973 Project: CXF Issue Type: Bug Affects Versions: 2.7.5, 2.7.12 Reporter: Tobias Oberlies According to the [JavaDoc of javax.ws.rs.core.Response.created(URI)|http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/Response.html#created%28java.net.URI%29], relative URIs should be resolved relative to the request URI. However, CXF resolves the URI relative the the servlet path of the CXFNonSpringJaxrsServlet. Example: For a resource at path {{/account/someaccount/entries}} served by a servlet registered at {{/service/b/api}}, the following code should result in a response with the HTTP header {{Location: http://localhost/service/b/api/account/someaccount/entries/newentry}} {noformat} @POST public Response create() { URI location = new URI(newentry); return Response.created(location).build(); } {noformat} However, the header has the incorrect value {{Location: http://localhost/service/b/api/newentry}} -- This message was sent by Atlassian JIRA (v6.2#6252)