2016-06-01 9 views
0

Ich habe eine Jersey-Anwendung und ich versuche, zu einer HTML-Seite umleiten, die die API-Konsole zeigt, wenn ich auf "/ apiconsole" Endpunkt wie unten gezeigt zugreifen.Umleiten auf statischen Inhalt mit JAX-RS UriBuilder

/** 
* Redirect to API Console 
* 
* @return API Console 
*/ 
@GET 
@Path("/apiconsole") 
public Response redirectToApiConsole() { 
    //redirect path from baseURI to the api console 
    URI redirectedURL = UriBuilder.fromPath("/api/console/index.html").build(); 
    return Response.seeOther(redirectedURL).build(); 
} 

Ist das dasselbe wie im Frühjahr?

/** 
* Redirect to API Console 
* 
* @return API Console 
*/ 
@RequestMapping(value = "/apiconsole", method = RequestMethod.GET) 
public View redirectToApiConsole() { 
    return new RedirectView("/api/console/index.html?raml=/api/console/api.raml"); 
} 

Antwort

0

Sie müssen Viewable verwenden, um dies zu acheive und die web.xml aktualisieren müssen statt Servlet die Servlet-Filter enthalten. Ich habe eine Antwort here und here zur Verfügung gestellt. Hoffe es hilft.

+0

Ich bekomme einen Fehler 'ogjmiWriterInterceptorExecutor: MessageBodyWriter nicht gefunden für Medientyp = text/html, type = class org.glassfish.jersey.server.mvc.Viewable, genericType = Klasse org.glassfish.jersey.server.mvc. Viewable.' – daredadevil

+0

Ich habe die folgende Config Jersey Config hinzugefügt: 'property (ServletProperties.FILTER_STATIC_CONTENT_REGEX,"/((api/console /.*)) ");' customConfig: 'property (MvcFeature.TEMPLATE_BASE_PATH,"/api/console/"); register (org.glassfish.jersey.server.mvc.MvcFeature.class); 'und gib einfach' return new Viewable ("index") zurück; ' – daredadevil

+0

TEMPLATE_BASE_PATH sollte der Speicherort des Verzeichnisses der HTML-Dateien sein. So etwas wie '/ WEB-INF' und dann das neue Sichtbare in ("/ index") ändern. Entfernen Sie außerdem die Eigenschaft ServletProperties.FILTER_STATIC_CONTENT_REGEX. – Veeram