컴퓨터활용/자바

JEUSMain.xml 과 web.xml

멜번초이 2012. 6. 7. 20:30


web.xml


서블릿리스너, 서블릿, 서블릿매핑, 서블릿필터, 서블릿필터매핑 등이 web.xml 에 정의되어 있다. 

서블릿매핑 : URL 로 들어오는 이름에 따른 정의를 하고 이에 따라 실행될 서블릿을 지정한다. 


    <servlet>

        <servlet-name>HttpServiceStartpoint </servlet-name>

        <servlet-class>gpsb.service.http.HttpServiceStartpoint</servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>


    <servlet-mapping>

        <servlet-name> HttpServiceStartpoint </servlet-name>

        <url-pattern>/service/*</url-pattern>

    </servlet-mapping>


이 예제에서 보듯이  /service/ 이라는 URL 로  들어오는 모든 요청은 gpsb.service.http.HttpServiceStartpoint  라는 서블릿이 받게 된다.  서블릿 리스너와 필터에 대한 설정은 아래와 같다. 프로젝트에 따라서 서로 다르겠지만~~


    <listener>

        <listener-class>gbsb.service.http.HttpServiceStartpointContextListener</listener-class>

    </listener>


    <filter>

        <filter-name>GpsbFilter</filter-name>

        <filter-class>com.sb.filter.GpsbFilter</filter-class>

        <init-param>

            <param-name>conf-reload</param-name>

            <param-value>5000</param-value>

        </init-param>

    </filter>


    <filter-mapping>

        <filter-name>IXyncFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>



이러한 서블릿 설정을 해 놓은 web.xml 의 위치는 JEUSMain.xml 에 기술되어 있다. 즉 컨테이너 홈 아래에 WEB-INF 디렉토리 에 있기 때문이다. 



JEUSMain.xml 


JEUSMain.xml  에서 <application> 섹션에서  컨테이너를 설정하는 것이다.   <name> 은 외부에서 호출 할 때 URL 에 노출되는 컨테이너의 이름이다. 실제 컨테이너의 이름은 <engine-container-name> 인  GPDEV_container1  이다. jeus admin 에 들어가서 conlist 해서 보면 보이는 이름이 이 이름이다. 


    <application>

        <name>GPSB</name>

        <path>/opt/gpsb/installableApps/serviceStartpoint</path>

        <deployment-type>COMPONENT</deployment-type>

        <web-component/>

        <deployment-target>

            <target>

                <engine-container-name>GPDEV_container1</engine-container-name>

            </target>

        </deployment-target>

    </application>


JEUSMain.xml에서 위와 같이 설정되어 있다면  /opt/gpsb/installableApps/serviceStartpoint   아래에 WEB-INF라는 디렉토리가 있을 것이고 그 아래에 web.xml 이 있을 것이다. 거기에 서블릿 관련 설정이 있을 것이다.  또 같은 (WEB-INF) 디렉토리에 classes 라는 디렉토리도 있을 터인데 그 안에는 각종 설정 xml 들( 예를 들어 log4j.xml 등이나 spring DI 설정xml ) 이 있을 것이다.   또한 그 컨테이너에서 사용되는 classes 들이 패키지 별로 들어 있기도 하다. 


JEUSMain.xml 에는 이런 컨테이너 설정정보 외에도 중요한 것이 있다.  데이타베이스 접속을 위한 Data Source 설정이 바로 그것이다.