JAX-RS 런타임 환경을 사용 안함으로 설정

JAX-RS(Java™ API for RESTful Web Service) 런타임 환경을 사용 안함으로 설정해야 하는 경우가 있습니다. JAX-RS 런타임 환경을 사용 안함으로 설정하면 기본 JAX-RS 런타임 기능, EJB(Enterprise JavaBeans) 런타임 통합, JCDI(Java Contexts and Dependency Injection) 런타임 통합 및 Servlet 3.0 웹 컨테이너 통합 등의 JAX-RS 기능을 사용할 수 없습니다.

이 태스크 정보

JAX-RS 런타임 환경을 사용 안함으로 설정하면 스캔된 JAX-RS 어노테이션이 있는 클래스 처리, EJB 메타데이터 및 JCDI Bean 사용 등 JAX-RS 관련 애플리케이션 처리가 더 이상 수행되지 않습니다. JAX-RS 런타임 환경은 웹 컨테이너로(부터)의 요청 및 응답을 처리하는 데 사용되지 않습니다.

우수 사례 우수 사례: JAX-RS 런타임 환경을 사용 안함으로 설정하더라도 javax.ws.rs.Path와 같은 JAX-RS 어노테이션에 대한 Servlet 3.0 기반 어노테이션 스캐닝이 사용 안함으로 설정되는 것은 아닙니다. 어노테이션 스캐닝을 사용 안함으로 설정하려면 metadata-complete 속성을 설정하십시오. 어노테이션 스캐닝이 사용 안함으로 설정되면 어노테이션 스캐닝은 JAX-RS 외부의 다른 모든 컴포넌트에 대해 사용 안함으로 설정됩니다. bprac

IBM® JAX-RS 런타임 환경에 대한 명시적 플러그 위치는 com.ibm.websphere.jaxrs.server.IBMRestServlet 서블릿 클래스 및 com.ibm.websphere.jaxrs.server.IBMRestFilter 필터 클래스입니다. 웹 모듈의 web.xml 파일에서 이러한 클래스를 서블릿 클래스 또는 서블릿 필터로 지정하는 경우 IBM JAX-RS 런타임 환경은 해당 서블릿에 대한 요청을 처리하는 데 사용됩니다.

JAX-RS 런타임 환경이 요청을 처리하지 않도록 하려면 해당 클래스를 서블릿에 대한 예상 요청을 처리할 수 있는 다른 서블릿 또는 필터 클래스로 대체하거나 web.xml 파일에서 서블릿 전체를 제거하십시오.

문제점 방지 문제점 방지: IBMRestServlet 클래스를 다른 클래스로 대체하면 애플리케이션의 기본 동작을 수정할 수도 있습니다. 서블릿을 완전히 제거하면 요청이 처리되지 않습니다. gotcha

com.ibm.websphere.jaxrs.server.IBMRestServlet 또는 com.ibm.websphere.jaxrs.server.IBMRestFilter 클래스를 명시적으로 사용하지 않더라도 JAX-RS 통합 런타임 환경이 계속해서 애플리케이션을 처리할 수도 있습니다. 예를 들어, 웹 모듈의 web.xml 파일이 Servlet 3.0 기반이고 JSR-311 스펙에 따라 해당 조건을 충족시키는 경우 JAX-RS 통합 런타임 환경은 JAX-RS 어노테이션이 있는 스캔된 클래스를 처리하고 요청을 처리할 수 있는 서블릿을 애플리케이션의 JAX-RS 자원에 삽입할 수 있습니다.

이 기능 및 EJB와 JCDI 통합과 같은 다른 기능을 사용 안함으로 설정하려면 애플리케이션 서버에서 com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine 사용자 정의 JVM(Java Virtual Machine) 특성의 값을 true로 설정하십시오.

프로시저

  1. web.xml 파일에서 IBMRestServletIBMRestFilter에 대한 참조를 제거하십시오. 다음 예는 IBM JAX-RS 런타임 환경을 사용하는 애플리케이션의 샘플 web.xml 파일을 보여줍니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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_3_0.xsd"
        version="3.0">
        	<servlet>
            <servlet-name>MyRestApplication1</servlet-name>
            <servlet-class>com.ibm.websphere.jaxrs.server.IBMRestServlet</servlet-class>
            <init-param>
                <param-name>javax.ws.rs.Application</param-name>
                <param-value>com.ibm.websphere.jaxrs.example.Application1</param-value>
            </init-param>
            <init-param>
                <param-name>requestProcessorAttribute</param-name>
                <param-value>MyRestApplication1RequestProcessorAttribute</param-value>
            </init-param>
            		<load-on-startup>1</load-on-startup>
        	</servlet>
        	<servlet>
            <servlet-name>MyNonJAXRSApplication</servlet-name>
            <servlet-class>com.ibm.websphere.example.NonJAXRSServlet</servlet-class>
            		<load-on-startup>1</load-on-startup>
        	</servlet>
        <filter>
            <filter-name>MyRestApplication2</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.websphere.jaxrs.example.Application2</param-value>
            </init-param>
            <init-param>
                <param-name>requestProcessorAttribute</param-name>
                <param-value>MyRestApplication2RequestProcessorAttribute</param-value>
            </init-param>
        </filter>
        	<servlet-mapping>
            <servlet-name>MyRestApplication1</servlet-name>
            <url-pattern>/jaxrsapp1/*</url-pattern>
        	</servlet-mapping>
        	<servlet-mapping>
            <servlet-name>MyNonJAXRSApplication</servlet-name>
            <url-pattern>/nonjaxrsapp/*</url-pattern>
        	</servlet-mapping>
        <filter-mapping>
            <filter-name>MyRestApplication2</servlet-name>
            <url-pattern>/jaxrsapp2/*</url-pattern>
        </filter-mapping>
    <web-app>
    다음 예는 IBMRestServletIBMRestFilter 클래스에 대한 참조를 제거한 후 web.xml 파일이 표시되는 방식을 보여줍니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app 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_3_0.xsd"
        version="3.0">
        	<servlet>
            <servlet-name>MyNonJAXRSApplication</servlet-name>
            <servlet-class>com.ibm.websphere.example.NonJAXRSServlet</servlet-class>
            		<load-on-startup>1</load-on-startup>
        	</servlet>
        	<servlet-mapping>
            <servlet-name>MyNonJAXRSApplication</servlet-name>
            <url-pattern>/nonjaxrsapp/*</url-pattern>
        	</servlet-mapping>
    </web-app>
  2. 애플리케이션 서버에서 com.ibm.websphere.jaxrs.server.DisableIBMJAXRSEngine 사용자 정의 JVM 특성의 값을 true로 설정하십시오.
  3. 사용자 정의 JVM 특성이 적용되도록 애플리케이션을 다시 시작하십시오.

결과

JAX-RS 런타임 환경이 애플리케이션 처리를 할 수 없도록 했습니다.


주제 유형을 표시하는 아이콘 태스크 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_disable_runtime
파일 이름:twbs_jaxrs_disable_runtime.html