저지 /* 서블릿 매핑으로 인해 정적 리소스에 대해 404 오류 발생
문제:
Jersey 2.0에서, Jersey URL 패턴을 /*에 매핑하면 모든 정적 리소스(예: /index.html)에 대해 404 오류가 발생합니다.
해결책:
Jersey 1 사용. x에서는 서블릿 대신 필터를 사용하여 동일한 경로에서 정적 콘텐츠를 제공할 수 있습니다. 제공된 서블릿 XML을 다음으로 바꾸십시오.
<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>
Jersey 2.x용 편집:
다음 XML 구성을 사용하십시오.
<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>
Jersey 2.x에 대한 Gradle 종속성:
<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>
참고:
필터 구성에서 staticContentRegex 매개변수를 사용자 정의하여 다른 파일 형식을 제공합니다( 예: .css, .jsp).
위 내용은 필터 구성을 사용하여 Jersey 2.0에서 정적 리소스를 제공하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!