Heim  >  Artikel  >  Java  >  Warum verursacht die Zuordnung des URL-Musters von Jersey zu /* 404-Fehler für statische Ressourcen in Jersey 2.0?

Warum verursacht die Zuordnung des URL-Musters von Jersey zu /* 404-Fehler für statische Ressourcen in Jersey 2.0?

Susan Sarandon
Susan SarandonOriginal
2024-10-27 08:38:02625Durchsuche

Why does mapping Jersey's URL pattern to /* cause 404 errors for static resources in Jersey 2.0?

Jersey /* Servlet-Zuordnung löst 404-Fehler für statische Ressourcen aus

Wenn das URL-Muster von Jersey in Jersey Version 2.0 /* zugeordnet ist, ist es kann zu 404-Fehlern für alle statischen Ressourcen wie index.html führen. Hier ist die web.xml-Konfiguration, die dieses Problem verursacht:

<code class="xml"><servlet>
  <servlet-name>JerseyApp</servlet-name>
  <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
  <init-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>org.frog.jump.JerseyApp</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>JerseyApp</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping></code>

Lösung für Jersey 1.x

In Jersey 1.x können Sie vom Jersey-Servlet wechseln zum Filter, um die Bereitstellung statischer Inhalte zu ermöglichen:

<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>

Lösung für Jersey 2.x

Verwenden Sie in Jersey 2.x die folgende Filterkonfiguration:

<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>

Stellen Sie sicher, dass Ihr POM Folgendes enthält:

<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>

Passen Sie den regulären Ausdruck im Init-Param an, wenn Sie verschiedene statische Dateitypen (z. B. CSS, JSP) bereitstellen.

Das obige ist der detaillierte Inhalt vonWarum verursacht die Zuordnung des URL-Musters von Jersey zu /* 404-Fehler für statische Ressourcen in Jersey 2.0?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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