2013-02-28 211 views
6

我一直在編寫一個澤西島原型(JAX-RS)應用程序,並試圖用POST重定向方法處理application/x-www-form-urlencoded帖子。澤西島:在澤西島以外的地方重定向

我想重定向到成功的應用程序根託管的html頁面,但我似乎無法逃離Jersey的 servlet root。

這裏是一個資源,它允許你創建一個新用戶的例子:

URI我想:/jersey-test/user.html

URI獲取:/球衣測試/ [R /user.html

@POST 
@Consumes({MediaType.APPLICATION_FORM_URLENCODED}) 
public Response putUser(@Context UriInfo uriInfo, 
    MultivaluedMap<String, String> formParams) { 

    // snip... do work and insert user here... 

    URI uri = uriInfo.getBaseUriBuilder().path("user.html").build(); 
    return Response.seeOther(uri).build(); 
} 

從我的web.xml的相關片段:

<web-app ...> 
    <display-name>jersey-test</display-name> 
    ... 
    <servlet> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
    ... 
    </servlet> 
    ... 
    <servlet-mapping> 
    <servlet-name>Jersey REST Service</servlet-name> 
    <url-pattern>/r/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

回答

8

指定這樣的路徑:

URI uri = uriInfo.getBaseUriBuilder().path("../user.html").build(); 
+0

呵呵。那太容易了。像魅力一樣工作,謝謝! – JavadocMD 2013-03-01 01:09:35

+0

你介意看看我的問題:http://stackoverflow.com/questions/35123194/jersey-2-render-swagger-static-content-correctly-without-trailing-slash,你在這裏回答不起作用對於我的案例 – DerekY 2016-02-16 10:08:05

+0

,這個http://www.javaproficiency.com/2015/04/redirect-in-jersey.html有一個很好的例子 – 2016-08-15 10:47:42