--------------------------------------------------------------------------------------------------

제목 : JEUS - 따라하기만 하라 - 개발자용

참고자료 : http://technet.tmaxsoft.com

 

작성자 : 윤영욱

작성일 : 2008.8.28

--------------------------------------------------------------------------------------------------

 

지루했던 메뉴얼 학습이 끝났다.

 

설치 후 개발환경 구축을 위한 내용들을 위주로 간략하세 정리해보려고 한다.

 

세부적인 항목들은 이전 게시물에서 상세하게 정리했으니 필요할때만다 하나씩 찾아서 보시기 바래요

 

 

 

<<STEP 01>> JEUS 5.0 설치하기

 

796번 게시물을 보고 따라하자

 

솔직히 할말이 없다 윈도우 인스톨러로 설치하는것이므로 '다음' 만 누르면 된다.

 

굳이 웹어드민까지 확인한해도 되고, 두가지 정도 확인 할것은

 

첫째, 윈도우 서비스로 제우스를 등록했냐는 거고

 

제어판> 관리도구> 서비스 을 열어 보면

 

 

둘째, 서비스 실행하고 8080 포트로 서비스가 올라갔는지 정도다

 

 

 

 

요거 까지 보이면 성공이다. 다음단계로 가자

 

* WS 와 WAS 관계를 명확히 정리해 두자

 

사용자의 request 는 WS에게 전달되고 WS는 request 의 종류에 따라 연결된 컨테이너로 처리를 위임하고

 

결과를 받아 사용자에게 보내게 된다.

 

 

 

<<STEP 02>> WS 설정

 

JEUS 설정 파일을 건드리려면 일단 설정파일들의 구조를 알고 잇어야 한다.

 

기본 설정은 왠만하면 건드리지 말고 우리가 건드릴 설정 파일들만 보자

 

자세한 내용은 819,824 게시물에 잇따 참고하시길~

 

 

1. 설정 파일 구조

 

 

 

눈 크게 뜨고 보자

 

일단 C:\TmaxSoft\JEUS5.0 까지가 JEUS 설치 홈이다.

 

%JEUS_HOME% 에서 config 폴더에 들어가면 자신의 장비의 host이름으로 폴더가 생성되어 있을 것이다

 

host 이름은 cmd로 (명령 프롬프트) 창 열어서 host 라고 명령어 입력하면 나온다.

 

 

폴더 안에 기본적으로 host 이름_컨테이너 종류_컨테이너 이름 이렇게 폴더가 4개 있을 것이다.

 

그 안에는 해당 컨테이너에서 필요한 설정 파일들이 있다.

 

그리고 가장 최상위에 JEUSMain.xml 파일이 있고

 

 

설명하자만 JEUSMain.xml 에서는 개략적인 뼈대만 잡고 해당 컨테이너 폴더 안에 있는 환경파일에서 세부적인

 

설정을 잡는 구조로 이해하면 되겟다.

 

 

-----------------------< JEUSMain.xml >--------------------------------------------------------

 

<?xml version="1.0" encoding="utf-8"?>
<jeus-system xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
    <node>
        <name>zackjo-f6c5df59</name>

        //노드 이름이다. 노드를 일단은 자신의 컴퓨터로 생각하자

        //임의로 해서는 안된다. 노드 이름으로 폴더가 생성되어 있고 노드 이름은 장비의 호스트 이름으로 설정되어 있으니

        //함부로 건드리지 말자    


        <class-ftp>true</class-ftp>


        <sequential-start>true</sequential-start>

         //boot의 순서를 순차적으로 기동할거냐를 설정한다. true로 눠두자


        <enable-webadmin>true</enable-webadmin>

         //web admin 사용여부


        <engine-container>

         //기동할 컨테이너들을 기술한다.


            <name>container1</name>

            //컨테이너 이름이다 여기서 설정한 이름으로 host 이름_컨테이너 종류_컨테이너 이름 의 폴더가 생성되는 것이다.


            <sequential-start>true</sequential-start>

            //boot의 순서를 순차적으로 기동할거냐를 설정한다. true로 눠두자


            <engine-command>
                <type>ws</type>
                <name>engine1</name>
            </engine-command>


            <engine-command>
                <type>jms</type>
                <name>engine1</name>
            </engine-command>


            <engine-command>
                <type>ejb</type>
                <name>engine1</name>
            </engine-command>


            <engine-command>
                <type>servlet</type>
                <name>engine1</name>
            </engine-command>

             //꼭 4개를 모두 설정해야 하는 것은 아니다 사실 jsp 기동을 위해 servlet 만 올려도 상관을 없다.

             //필요할 떄마다 engine-command 부분 추가해 주면 된다.          


        </engine-container>
    </node>

 

    //여기가다 db 랑 연결한 connection - pool 설정할 것이다. 좀 이따가~

    //오라클 연결할 생각이니 차근히 따라오세용~

   //<resource>

   // ...

   //</resource>


    </jeus-system>

 

-----------------------< JEUSMain.xml >--------------------------------------------------------

 

 

여기서는 일단 ws 설정을 보기로 했으니깐 호스트 이름_ws_engine1 폴더에서 WSMain.xml 를 열어보자

 

--------------------------< WSMain.xml >-------------------------------------------------

 

<?xml version="1.0" encoding="UTF-8"?>
<ws-engine xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
    <domain>
        <name>jeuservice</name>

        // %JEUS_HOME%\webserver\config\ws_engine.m 에서 사용되는 도메인 이름과 일치해야 한다,

        // 건드리지 말자!!!

        //%JEUS_HOME%\webserver 는 ws 의 홈 폴더이다. 우리는 전체 ws 설정을 하는게 아니라 우리가 사용할

        //장비 즉 노드에 대한 설정만 하는 것이다. 전체 ws에는 다수의 노드가 붙어 있을수 있다.


        <node>
            <name>zackjo-f6c5df59</name>

             //장비, 노드 호스트 이름         


            <webtob-dir>C:/TmaxSoft/JEUS5.0/webserver</webtob-dir>

            //웹투비 라고 TMAX에서 제공하는 WS 이다

            //위에서 말한대로 전체 WS 홈 폴더의 물리적 경로를 설정한다


            <shmkey>54000</shmkey>

             //공유 메모리 관련 설정이다 놔둘것~

            <docroot>C:/TmaxSoft/JEUS5.0/webserver/docs</docroot>

             //여기에 파일을들 모아두어야 서비스 한다.


            <jsv-port>9900</jsv-port>

             //servlet 과 ws 연동 포트를 말한다.

 
            <hth>1</hth>

             //처리 프로세스 설정 값이다. 보통 1개의 프로세스에서 600~700의 작업을 감당하니 놔두고 그 이상의 동접이

             //필요하면 돈주고 제우스 사야한다.

 
            <port>8080</port>

             //서비스할 포트를 지정한다.

             //설정변경 후 JEUS를 재 시작해야한다.        


            <logging>log1</logging>
            <error-log>log2</error-log>
        </node>


        <svrgroup>
            <name>htmlg</name>
            <svr-type>HTML</svr-type>
            <node-name>zackjo-f6c5df59</node-name>
        </svrgroup>
        <svrgroup>
            <name>cgig</name>
            <svr-type>CGI</svr-type>
            <node-name>zackjo-f6c5df59</node-name>
        </svrgroup>
        <svrgroup>
            <name>ssig</name>
            <svr-type>SSI</svr-type>
            <node-name>zackjo-f6c5df59</node-name>
        </svrgroup>
        <svrgroup>
            <name>jsvg</name>
            <svr-type>JSV</svr-type>
            <node-name>zackjo-f6c5df59</node-name>
        </svrgroup>
        <svrgroup>
            <name>jsvg2</name>
            <svr-type>JSV</svr-type>
            <node-name>zackjo-f6c5df59</node-name>
        </svrgroup>
        <server>
            <name>html</name>
            <svg-name>htmlg</svg-name>
            <min-proc>1</min-proc>
            <max-proc>2</max-proc>
        </server>
        <server>
            <name>cgi</name>
            <svg-name>cgig</svg-name>
            <min-proc>1</min-proc>
            <max-proc>2</max-proc>
        </server>
        <server>
            <name>ssi</name>
            <svg-name>ssig</svg-name>
            <min-proc>1</min-proc>
            <max-proc>2</max-proc>
        </server>
        <server>
            <name>MyGroup</name>
            <svg-name>jsvg</svg-name>
            <min-proc>1</min-proc>
            <max-proc>5</max-proc>
        </server>
        <uri>
            <name>uri1</name>
            <uri-def>/cgi-bin/</uri-def>
            <svr-type>CGI</svr-type>
        </uri>
        <uri>
            <name>uri2</name>
            <uri-def>/examples/</uri-def>
            <svr-type>JSV</svr-type>
        </uri>
        <logging>
            <name>log1</name>
            <format>DEFAULT</format>
            <file-name>C:/TmaxSoft/JEUS5.0/webserver/log/access.log</file-name>
            <option>sync</option>
        </logging>
        <logging>
            <name>log2</name>
            <format>ERROR</format>
            <file-name>C:/TmaxSoft/JEUS5.0/webserver/log/error.log</file-name>
            <option>sync</option>
        </logging>
        <ext>
            <name>htm</name>
            <mimetype>text/html</mimetype>
            <svr-type>HTML</svr-type>
        </ext>
        <ext>
            <name>jsp</name>
            <mimetype>application/jsp</mimetype>
            <svr-type>JSV</svr-type>
         <svr-name>MyGroup</svr-name>
        </ext>
    </domain>
</ws-engine>

 

--------------------------< WSMain.xml >-------------------------------------------------

 

 

<<STEP 03 >> SERVELT 설정

 

일단 애플리케이션의 ROOT 디렉터리와 어떤 설정 파일을 건트려야 할지 그림으로 보자

 

 

나중에 애플리케이션 경로는 바꾸더라도 지금은 여기서 설명하는데로 하나씩 따라하자

 

WEBHOME>APP_HOME>

 

밑에 MyContext 대신 각자 이름으로 폴더 만들도 하위 디렉토리 구조도 위와 같이 만든다

 

 

 

그리고 나서 설정파일을 건드려보자

 

파일 3개만 건드리면 된다.

 

 

 

 

1. JEUSMain.xml 에 새로운 애플리테이션 추가

 

위에서 설정한 JEUSMain.xml 에 추가한다.

 

--------------------------< JEUSMain.xml >-------------------------------------------------

 

<?xml version="1.0" encoding="utf-8"?>
<jeus-system xmlns="http://www.tmaxsoft.com/xml/ns/jeus">
    <node>
        <name>zackjo-f6c5df59</name>

         ...
    </node>


    <application>
        <name>Cresys_Enterprise</name>


        <path>C:/TmaxSoft/JEUS5.0/webhome/app_home/cresys_enterprise</path>

        //나중에 애플리케이션 경로 바꾸려면 여기서 바꾸면 된다


        <deployment-target>
            <target>
                <engine-container-name>zackjo-f6c5df59_container1</engine-container-name>
                <web-context-group>
                    <name>MyGroup</name>
                </web-context-group>
            </target>
        </deployment-target>


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


        <web-component/>
    </application>

 

</jeus-system>

 

--------------------------< JEUSMain.xml >-------------------------------------------------

 

2. jeus-web-dd.xml 설정하기

 

--------------------------< jeus-web-dd.xml >-------------------------------------------------

 

<?xml version="1.0"?>
<jeus-web-dd xmlns="http://www.tmaxsoft.com/xml/ns/jeus">


        <context-path>/cresys_enterprise</context-path>

        //http://localhost:8088/cresys_enterprise 이렇게 접근하겠다는 뜻이다
        <enable-jsp>true</enable-jsp>

 

    <auto-reload>
        <enable-reload>true</enable-reload>
        <check-on-demand>true</check-on-demand>
    </auto-reload>
</jeus-web-dd>

 

--------------------------< jeus-web-dd.xml >-------------------------------------------------

 

 

3. WEBMain.xml

 

--------------------------< WEBMain.xml >-------------------------------------------------

 

<?xml version="1.0"?>
<web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus">


    <context-group>
        <group-name>MyGroup</group-name>

        <print-error-to-browser>true</print-error-to-browser>


        <webserver-connection>

 

            <http-listener>
                <listener-id>http1</listener-id>
                <port>8088</port>
                <thread-pool>
                    <min>10</min>
                    <max>20</max>
                    <step>1</step>
                </thread-pool>
            </http-listener>

             //요걸 사용할 것이다. 포트가 8088 인것을 기억하자

             //JEUS 5.0 말고 WEBTOB도 설치 했다면 밑에 나오는 webtob 설정으로 서비스 할 수 있다.

             //일단은 JEUS 내장 웹서버로 서비스 한다.

             //웹서버를 따로 둘경우 아파치도 쉽게 설정가능하다

 

            <webtob-listener>
                <listener-id>webtob1</listener-id>
                <port>9900</port>
                <output-buffer-size>8192</output-buffer-size>
                <thread-pool>
                   <min>1</min>
                   <max>5</max>
                   <step>1</step>
                   <max-idle-time>30000</max-idle-time>
                </thread-pool>
                <webtob-address>localhost</webtob-address>
                <registration-id>MyGroup</registration-id>
            </webtob-listener>

 

        </webserver-connection>

 

    </context-group>

 

    <session-cluster>
        <session-routing>false</session-routing>
    </session-cluster>

</web-container>

 

--------------------------< WEBMain.xml >-------------------------------------------------

 

<<STEP 04>> 엔코딩 설정

 

엔코딩 설정은 WEBMain.xml 파일에서 가능하다

 

--------------<<WEBMain.xml>>---------------------------------------------------

 

<?xml version="1.0"?>
<web-container xmlns="
http://www.tmaxsoft.com/xml/ns/jeus">
...
    <context-group>
        <group-name>MyGroup</group-name>

        //내부적으로 통용되는 Context Group 의 식별자이다.
...
        <group-docbase>webapps</group-docbase>
...
        <print-error-to-browser>true</print-error-to-browser>

        //Server 쪽의 문제가 발생하였을 때 오류의 상세 내역을 브라우저로 보여줄 것인지에 대한 설정이다.

        //이 메시지는 개발 시에는 유용하지만 운영 시에는 제거하는 것이 바람직하다.
    

        <encoding>

         //request, response, postdata encoding을 설정할 수 있다.

         //각 설정은 “default”나 “forced”로 설정 가능하다.
         //전자는 어떤 인코딩도 없을 경우에 기본 값으로 사용하고

       //후자는 모든 경우에 항상 강제적으로 사용하도록 한다.

            <request-encoding>
                <default>EUC-KR</default>
                <forced>UTF-8</forced>
            </request-encoding>


            <response-encoding>
                <default>EUC-KR</default>
                <forced>UTF-8</forced>
            </response-encoding>

            <postdata-encoding>
                <default>EUC-KR</default>
                <forced>UTF-8</forced>
            </postdata-encoding>

        </encoding>

 

 

        <jsp-engine>
            <keep-generated>true</keep-generated>
            //옵션은 JSP 포맷에서 변환을 거친 후 Servlet 소스 코드를 저장해 둘지를 결정한다.

            //디버깅을 위해서 이 옵션을 “true”로 해 놓으면 유용하다.

 

            <java-compiler>javac</java-compiler>


            <jsp-work-dir>c:\MyJSPWorkdir\</jsp-work-dir>


            <compile-output-dir>c:\MyJSPWorkdir\</compile-output-dir>


            <compile-option>-g:none –verbose</compile-option>

 

            <compile-encoding>UTF-8</compile-encoding>

            //이 설정은 Web Container 가 적당한 인코딩을 알아서 지정하므로 많이 사용되지 않는다.


            <check-included-jspfile>true</check-included-jspfile>

            //설정이 “true”로 설정되면 요청한 JSP 페이지 뿐만 아니라 <%@ include file=”xxx.jsp” %> directive 로

            //include 된 모든 JSP 들에 대하여 변경되었는지 확인한다.

            //이 설정이 “true”로 설정되고 include 된 JSP 파일이 변경되었음이 확인되면 변경된 파일은 재컴파일 된다.

            //기본 설정인 “false”는 변경 확인을 하지 않는다. 즉, 요청된 JSP 만 변경확인 된다.


        </jsp-engine>

 

. . .
    </context-group>
...
</web-container>

 

 

--------------<<WEBMain.xml>>---------------------------------------------------

 

<<STEP 05>> 시험

 

http://localhost:8088/cresys_enterprise/index.jsp

 

페이지를 확인해 보자

 

위의 것과 똑 같이 따라했을 경우 안될리가 없다

 

문의사항은 덧글로 부탁드려용