WAR(Web Archive) 파일을 위한 web.xml 파일 사용자 정의

워크벤치가 웹 서비스를 위해 빌드하는 WAR 파일에서 사용하는 web.xml 파일을 사용자 정의할 수 있습니다. 이러한 필터가 서비스와 함께 전개되도록 하려면 웹 서비스로 들어오는 요청을 위해 일부 필터를 추가하여 web.xml을 변경할 수 있습니다. 또한 추가 servlet 또는 servlet 맵핑 태그를 추가할 수도 있습니다.

이 태스크 정보

web.xml 파일이 웹 서비스의 프로젝트에 있더라도 web.xml 파일을 직접 편집하지 않습니다. 대신, 워크벤치가 다시 WAR 파일을 생성하면 워크벤치에서 web.xml 파일에 포함하려는 변경사항이 포함된 템플리트를 작성합니다.

빌드 및 전개 마법사를 사용하여 WAR 파일을 생성하면 워크벤치가 프로젝트에서 모든 파일을 삭제하고 이를 다시 작성합니다. 따라서 web.xml 파일을 직접 편집하는 경우, 빌드 및 전개 마법사를 사용하면 변경사항을 잃게 됩니다.

web.xml 파일에 대한 편집 내용을 포함하는 템플리트를 사용하면 워크벤치가 템플리트의 컨텐츠와 작성한 web.xml 파일 컨텐츠를 병합합니다.

프로시저

web.xml 파일을 사용자 정의하려면 다음을 수행하십시오.

  1. 네비게이터 보기가 열려 있지 않은 경우, 이를 여십시오.
    1. Window > 뷰 표시 > 기타를 선택하십시오.
    2. 뷰 표시 창에서 일반 > 네비게이터를 선택하십시오.
  2. 프로젝트의 .metadata 폴더를 마우스 오른쪽 단추로 클릭하고 새로 작성 > 기타를 선택하십시오. 새로 작성 마법사에서, 일반을 펼치고 폴더를 선택하십시오. 다음을 클릭하십시오. 새 폴더 페이지에 템플리트를 이름으로 입력하십시오. 완료를 클릭하십시오.
  3. 템플리트 폴더를 마우스 오른쪽 단추로 클릭하고 새로 작성 > 기타를 선택하십시오. 새로 작성 마법사에서, 일반을 펼치고 폴더를 선택하십시오. 다음을 클릭하십시오. 새 폴더 페이지에서 j2ee를 이름으로 입력하십시오. 완료를 클릭하십시오.
  4. j2ee 폴더를 마우스 오른쪽 단추로 클릭하고 새로 작성 > 기타를 선택하십시오. 새로 작성 마법사에서, 일반을 펼치고 파일을 선택하십시오. 다음을 클릭하십시오. 새 파일 페이지에서 web_template.xml을 이름으로 입력하십시오. 완료를 클릭하십시오.
  5. 새 파일의 편집기에서 소스 탭을 선택하십시오. 다음 태그를 편집기에 복사 및 붙여넣기 하십시오.
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5">
    
    </web-app>
  6. 워크벤치를 사용하여 웹 서비스를 위해 WAR 파일에 맞게 생성한 web.xml 파일로 통합할 컨텐츠를 추가하십시오. Java Servlet 2.5 스펙의 스키마가 정의하는 태그에 컨텐츠를 추가할 수 있습니다.
    다음은 예제 템플리트입니다.
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
    <filter>
        <filter-name>DebugFilter-In</filter-name>
        <description>Print XMl request, XML response and current timestamps</description>
        <filter-class>com.vzb.varwebservices.filter.DebugFilter</filter-class>
        <init-param>
           <param-name>input</param-name>
           <param-value>true</param-value>
        </init-param>
    </filter>
    
    <servlet>
        <servlet-name>testServlet1</servlet-name>
        <servlet-class>com.ibm.datatools.dsws.rt.testclient.testServlet1</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>testServlet1</servlet-name>
        <url-pattern>/TestClient/testServlet1</url-pattern>
    </servlet-mapping>
     
    <servlet>
        <servlet-name>testServlet2</servlet-name>
        <servlet-class>com.ibm.datatools.dsws.rt.testclient.testServlet2</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>testServlet2</servlet-name>
        <url-pattern>/TestClient/testServlet2</url-pattern>
    </servlet-mapping>
    </web-app>
  7. 템플리트를 저장하십시오. 프로젝트를 빌드한 다음, 워크벤치를 사용하여 템플리트 파일의 컨텐츠를 새로 생성된 WAR 파일에 들어갈 web.xml 파일로 삽입합니다.

피드백