Heim > Java > javaLernprogramm > Wie kann ich statische Inhalte mit der universellen URL-Zuordnung von Jersey bereitstellen und gleichzeitig 404-Fehler vermeiden?

Wie kann ich statische Inhalte mit der universellen URL-Zuordnung von Jersey bereitstellen und gleichzeitig 404-Fehler vermeiden?

Patricia Arquette
Freigeben: 2024-10-29 01:45:30
Original
581 Leute haben es durchsucht

How to Serve Static Content with Jersey's Universal URL Mapping While Avoiding 404 Errors?

Bereitstellung statischer Inhalte mit der universellen URL-Zuordnung von Jersey

Jerseys weit verbreitete Verwendung des /*-URL-Musters in seiner Zuordnung kann manchmal zu 404-Fehlern führen Zugriff auf statische Ressourcen wie HTML-Dateien. Dieses Problem ergibt sich aus der Tatsache, dass die Zuordnung mit der Standardverarbeitung von statischen Inhalten im Webcontainer in Konflikt steht.

Lösung des Konflikts in Jersey 1.x

Zu dienen Wenn Sie bei der Verwendung der /*-Zuordnung in Jersey 1.x statische Inhalte verwenden, wird empfohlen, vom Jersey-Servlet zu einem Filter zu wechseln. Dies kann durch Aktualisieren der web.xml-Konfiguration wie folgt erreicht werden:

<code class="xml"><filter>
  <filter-name>Jersey Filter</filter-name>
  <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
  <init-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>org.frog.jump.JerseyApp</param-value>
  </init-param>
  <init-param>
    <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
    <param-value>/.*html</param-value>
  </init-param>
</filter> 
<filter-mapping>
  <filter-name>Jersey Filter</filter-name>
  <url-pattern>/*</url-pattern> 
</filter-mapping></code>
Nach dem Login kopieren

Diese Konfiguration ermöglicht es Jersey, Anforderungen basierend auf dem WebPageContentRegex-Muster (in diesem Fall /.*html) zu filtern und so statische Ressourcen zu ermöglichen wie vorgesehen bereitgestellt werden.

Lösung des Konflikts in Jersey 2.x

Die Lösung für Jersey 2.x ähnelt der von 1.x, mit geringfügigen Änderungen aufgrund von Namensänderungen der Grundstücke. Die folgende web.xml-Konfiguration sollte das Problem beheben:

<code class="xml"><filter>
  <filter-name>Jersey Filter</filter-name>
  <filter-class>org.glassfish.jersey.servlet.ServletContainer</filter-class>
  <init-param>
    <param-name>jersey.config.server.provider.packages</param-name>
    <param-value>org.example</param-value>
  </init-param>
  <init-param>
    <param-name>jersey.config.servlet.filter.staticContentRegex</param-name>
    <param-value>/.*html</param-value>
  </init-param>
</filter> 
<filter-mapping>
  <filter-name>Jersey Filter</filter-name>
  <url-pattern>/*</url-pattern> 
</filter-mapping></code>
Nach dem Login kopieren

Zusätzlich muss die POM-Datei die folgenden Abhängigkeiten enthalten:

<code class="xml"><dependency>
  <groupId>org.glassfish.jersey.core</groupId>
  <artifactId>jersey-server</artifactId>
  <version>${jersey2.version}</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency>

<dependency>
  <groupId>org.glassfish.jersey.containers</groupId>
  <artifactId>jersey-container-servlet-core</artifactId>
  <version>${jersey2.version}</version>
  <type>jar</type>
  <scope>compile</scope>
</dependency></code>
Nach dem Login kopieren

Der staticContentRegex-Parameter kann angepasst werden, um mit anderen Dateien übereinzustimmen Erweiterungen nach Bedarf.

Als Alternative zur Verwendung eines Filters besteht ein anderer Ansatz darin, einen versionierten Pfad für Dienste zu definieren, z. B. „/v1/*“, sodass statische Inhalte bereitgestellt werden können, ohne dass ein Filter erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie kann ich statische Inhalte mit der universellen URL-Zuordnung von Jersey bereitstellen und gleichzeitig 404-Fehler vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage