2016-05-27 11 views
4

Ich muß eine bestimmte externe URL in meinem Trikot Web-ServiceResponse.seeOther kehrt leerer Bildschirm

und ich bin mit dieser Methode umleiten:

public static Response redirectTo(String path) { 
    URI uri; 
    try { 
     uri = new URI(path); 
     return Response.seeOther(uri).build(); 
    } catch (URISyntaxException e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

Aber es navigiert zu einer weißen Bildschirmseite und nicht zu stackoverflow.com.

Warum passiert es und wie man es repariert?

Diese Methode wird in diesem Verfahren

genannt
@GET 
    @Path("/login") 
    @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) 
    public Response login(@Context UriInfo info, @Context HttpServletRequest request) { 
... 
String url = "http://stackoverflow.com"; 
redirectTo(url); 
} 

die URL der Login-Methode wird aufgerufen, wenn ein Ereignis aus AppDirect (via Browser) Auslösende

+0

Sie müssen wahrscheinlich weitere Details angeben. Was meinst du mit einem weißen Bildschirm? Welchen Client benutzen Sie, um auf die REST-Ressource zuzugreifen, die 303 mit dem 'Location'-Header zurückgeben soll? Wie verwenden Sie diesen Client, um diese Ressource aufzurufen? Hast du 'curl' probiert und überprüft, ob es wie erwartet mit dem' Location'-Header zurückkommt? –

+0

Ich habe die Frage bearbeitet, nein, ich habe nicht versucht, die Locke – eeadev

Antwort

1

ich in Hinzufügen der @Context HttpServletResponse res Parameter endete meine Methode und Aufruf dieser Methode res.sendRedirect(urlApp);

Dies funktioniert wie erwartet.