JAX-RS 필터에 대한 web.xml 파일 구성
web.xml 파일은 모듈의 웹 컴포넌트 구조 및 외부 종속성에 관한 정보를 포함하며 런타임 시 컴포넌트 사용 방법을 기술합니다. 웹 컨테이너에서 JAX-RS(Java™ API for RESTful Web Services) 애플리케이션을 사용하려면 필터를 호출할 수 있는 가능한 URL을 표시하는 필터를 정의하도록 web.xml 파일을 구성할 수 있습니다.
이 태스크 정보
JAX-RS 애플리케이션 코드를 사용할 수 있도록 웹 애플리케이션에 대한 web.xml 파일을 구성할 수 있습니다. JAX-RS 코드를 실행하는 데 사용할 IBM® 특정 JAX-RS 필터를 지정할 수 있습니다. web.xml 파일은 웹 애플리케이션을 구성하는 웹 컴포넌트에 대한 구성 및 배치 정보를 제공합니다. 이 배치 디스크립터 파일에 대해 자세히 학습하려면 JAX-RS에 대한 web.xml 파일 구성을 참조하십시오.
서블릿을 사용하는 경우 web.xml에 정의된 서블릿 경로가 기본 URL에 추가됩니다. 필터는 자원 기본 URL에 대한 경로에 추가되지 않습니다. 대신, 필터 URL 맵핑에서 필터를 호출할 수 있는 가능한 URL을 표시합니다. 예를 들어, 루트 자원에서 myresource의 값이 @javax.ws.rs.Path인 경우 자원의 최종 URL은 http://<your_hostname>:<your Web_container_port>/<context_root_of_Web_application>/myresource입니다. 루트 자원을 올바르게 지원하려면 필터의 URL 맵핑 패턴이 myresource와 일치해야 합니다. 예를 들어, URL 패턴으로 /* 또는 /myresource를 사용할 수 있습니다. 애플리케이션에 다중 자원이 있으면 필터의 URL 패턴은 모든 자원과 일치해야 합니다. /* 패턴은 필터의 공통 값입니다.
수신 요청 URL이 JAX-RS 애플리케이션에서 JAX-RS 자원과 일치하지 않으면 요청은 필터 체인의 나머지로 전달됩니다. 애플리케이션에 따라 JAX-RS 애플리케이션에서 요청을 지원하도록 필터 동작을 사용할 수 있습니다. 또는 사용 가능한 JAX-RS 자원이 없으면 JSP(JavaServer Pages)와 같은 기본 웹 컨테이너 아티팩트로 요청을 진행할 수 있습니다. 웹 컨테이너에 일치하는 아티팩트가 없으면 웹 컨테이너는 오류 응답에 대한 책임을 집니다.
프로시저
결과
예
다음 예제에서는 JAX-RS 애플리케이션에 필터를 적용하도록 구성된 WEB-INF/web.xml 파일을 보여줍니다. 이 예제는 RestApplication1 필터를 정의합니다. 수신 요청 URL이 RestApplication1 필터의 자원과 일치하면 RestApplication1 필터에서 응답이 생성됩니다. 수신 요청 URL이 RestApplication1 필터의 자원과 일치하지 않지만 OtherRestApplicationFilter의 자원과 일치하면, OtherRestApplicationFilter 필터에서 응답이 생성됩니다. 수신 URL이 두 필터와 모두 일치하지 않으면 JSP와 같은 다른 웹 컨테이너 아티팩트에서 요청을 지원할 수 있습니다.
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns=http://java.sun.com/xml/ns/j2ee
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<filter>
<filter-name>RestApplication1</filter-name>
<filter-class>com.ibm.websphere.jaxrs.server.IBMRestFilter</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.rest.sample.app1.MyApplication</param-value>
</init-param>
<init-param>
<param-name>requestProcessorAttribute</param-name>
<param-value>restApplication1ProcessorID</param-value>
</init-param>
</filter>
<filter>
<filter-name>OtherRestApplicationServlet</filter-name>
<filter-class>com.ibm.websphere.jaxrs.server.IBMRestFilter</filter-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.ibm.rest.other.sample.OtherApplication</param-value>
</init-param>
<init-param>
<param-name>requestProcessorAttribute</param-name>
<param-value>otherRestApplicationID </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>RestApplication1</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>OtherRestApplicationServlet</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
다음에 수행할 작업
웹 애플리케이션을 어셈블하십시오.