Dienen statische Dateien zusammen mit Jersey, Guice config
Ich habe die folgende Konfiguration als ein Guice-Modul (anstelle einer web.xml)
public class RestModule extends JerseyServletModule {
@Override
protected void configureServlets() {
install(new JpaPersistModule("myDB"));
filter("/*").through(PersistFilter.class);
bind(CustomerList.class);
bind(OrdersList.class);
bind(MessageBodyReader.class).to(JacksonJsonProvider.class);
bind(MessageBodyWriter.class).to(JacksonJsonProvider.class);
ImmutableMap<String, String> settings = ImmutableMap.of(
JSONConfiguration.FEATURE_POJO_MAPPING, "true"
);
serve("/*").with(GuiceContainer.class, settings);
}
}
Dienen der REST-Endpunkten funktioniert ja bereits ganz gut.
Ich würde gerne dienen, eine statische html-Datei aus /webapp/index.html wenn der Benutzer anfordert, http://example.com/
und der rest-services auf http://example.com/customers oder http://example.com/orders
ich nicht verwenden web.xml. der webserver jetty
- ich bin mir bewusst, dass es eine ähnliche Antwort in stackoverflow.com/questions/10808610/..., aber ich möchte wirklich avoind unter /services/ Präfix
- Andreas, hast du eine Lösung finden? Ich habe gekämpft, mit diesem für mehrere Stunden jetzt. Ich habe alles versucht, von serveRegex mit verschiedenen regex-posted in die guice-community, um diese Lösung (stackoverflow.com/a/3593513/695318) zu verwenden tuckey UrlRewriteFilter und ich nicht habe zu jeder Zeit. Schließlich fand ich condit ist post vielen Dank für Ihre Frage, es funktioniert und es ist völlig in Ordnung. Wenn du bereits eine andere Lösung, ich wäre neugierig, wie du es gelöst hast.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie unter: Jersey /* servlet-mapping bewirkt, dass 404-error für statische Ressourcen
und fügen Sie die entsprechenden Parameter auf Ihre
settings
Objekt. So etwas wie:Als ich sagte, in meinem Kommentar, ich habe gekämpft, mit diesem fast den ganzen Tag. condit verknüpft, um die richtige Antwort, aber der Vollständigkeit halber, hier ist was für mich gearbeitet. Ich bin mit Tomcat, jersey und jersey-guice) 1.17.1, und guice 3.0.
Obwohl ich Tomcat verwenden, den schwierigen Teil (statischen Ressourcen) nicht anders.
Hinweis: die beiden letzten Zeilen sind die wichtigsten.
Erste, der param ignorieren statische Dateien:
Ich habe dieses set zu den regex:
...da meine statische Ressourcen befinden sich in src/main/webapp/images und src/main/webapp/css (ich bin mit dem maven-Projekt-Struktur). So zum Beispiel:
(dies ist für jersey-1.7.x nur - wenn Sie mit Trikot 2.x verwenden Sie die Taste "jersey.config.- servlet.filter.staticContentRegex" oder im Idealfall die Java Konstante ServletProperties.FILTER_STATIC_CONTENT_REGEX).
Schließlich die Letzte Zeile:
Sollten Sie verwenden: filter("/*").durch und NICHT dienen("/*).mit
Wenn Sie kam mit einer anderen Lösung, würde ich mag, um zu sehen, was es war.