자료는...
www.tmax.co.kr 에서 개발/배포하는
웹서버(WebToB)와 JEUS(servlet container)의
설치 및 시동에 관한 자료입니다.
하루종일 고생했습니다. -.-
도움이 되셨으면 좋겠네요.
----------------------------------------------------------------------------------------
1. 필요 프로그램
- j2sdk1.4.1_07 (http://java.sun.com)
- jeus42.exe (http://www.tmax.co.kr)
- webtob_3.1.6(build3).exe (http://www.tmax.co.kr)
----------------------------------------------------------------------------------------
2. j2sdk1.4.1_07 설치
- path에 C:/jdk1.4.1_07/bin 설정
- classpath에 . 설정
----------------------------------------------------------------------------------------
3. JEUS42 설치
- JEUS42.exe를 실행
- 중간에 자신의컴퓨터이름을 입력합니다. (저의 경우 realchokyCompaq)
- 설치 후 다음 세개의 파일을 자신의 환경에 맞게 편집
1) c:\jeus42\config\realchokyCompaq\JEUSMain.xml
제우스 설정파일
2) c:\jeus42\webhome\servlet_home\webapps\examples\web-inf\web.xml
3) C:\Jeus42\config\realchokyCompaq\realchokyCompaq_servlet_engine1\WEBMain.xml
제우스 웹컨테이너 설정파일
(제우스는 멀티웹컨테이너를 지원하고, 각 웹컨테이너는 WEBMain.xml에서 설정한다.)
설정예)
1) JEUSMain.xml
<?xml version="1.0"?>
<!DOCTYPE jeus-system PUBLIC "-//Tmax Soft, Inc.//DTD JEUS Main Config 4.0//EN"
"http://www.tmaxsoft.com/jeus/dtd/4.0/jeus-main-config.dtd">
<jeus-system>
<node>
<name>realchokyCompaq</name>
<class-ftp>true</class-ftp>
<sequential-start>true</sequential-start>
<enable-webadmin>false</enable-webadmin>
<system-log>
<level>debug</level>
</system-log>
<engine-container>
<name>container1</name>
<engine-command>
<type>servlet</type>
<name>engine1</name>
<startup-mode>xml</startup-mode>
</engine-command>
<tm-config>
<pooling>
<min>10</min>
<max>20</max>
<step>2</step>
<period>600000</period>
</pooling>
<active-timeout>300000</active-timeout>
<commit-timeout>120000</commit-timeout>
<capacity>20000</capacity>
</tm-config>
</engine-container>
</node>
<resource>
<!-- 아래 data-source는 자신의 DB환경에 맞게 편집해야합니다.-->
<data-source>
<database>
<vendor>oracle</vendor>
<export-name>oratest</export-name>
<data-source-class-name>oracle.jdbc.pool.OracleConnectionPoolDataSource</data-source-class-name>
<data-source-type>ConnectionPoolDataSource</data-source-type>
<database-name>oratest</database-name>
<data-source-name>oracle.jdbc.pool.OracleConnectionPoolDataSource</data-source-name>
<description>Customer DB</description>
<password>tiger</password>
<encryption>false</encryption>
<port-number>1521</port-number>
<server-name>192.168.1.139</server-name>
<user>scott</user>
<driver-type>thin</driver-type>
<connection-pool>
<pooling>
<min>2</min>
<max>4</max>
<step>1</step>
<period>600000</period>
</pooling>
<wait-free-connection>
<enable-wait>true</enable-wait>
<wait-time>10000</wait-time>
</wait-free-connection>
<operation-to>30000</operation-to>
</connection-pool>
</database>
</data-source>
</resource>
</jeus-system>
2) web.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN' 'file:///C:\Jeus42/config/dtds/web-app_2_3.dtd'>
<web-app>
<display-name> Examples </display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>ServletContextTest</servlet-name>
<servlet-class>ServletContextTest</servlet-class>
<init-param>
<param-name>color</param-name>
<param-value>blue</param-value>
</init-param>
<init-param>
<param-name>age</param-name>
<param-value>20</param-value>
</init-param>
<load-on-startup>-1</load-on-startup>
<!--
<security-role-ref>
<role-name>USER</role-name>
<role-link>jsvuser</role-link>
</security-role-ref>
-->
</servlet>
<servlet>
<servlet-name>RequestHeaderTest</servlet-name>
<servlet-class>RequestHeaderTest</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet>
<servlet-name>RequestInfoTest</servlet-name>
<servlet-class>RequestInfoTest</servlet-class>
</servlet>
<servlet>
<servlet-name>ServletTest</servlet-name>
<servlet-class>ServletTest</servlet-class>
</servlet>
<servlet>
<servlet-name>SessionTest</servlet-name>
<servlet-class>SessionTest</servlet-class>
</servlet>
<servlet>
<servlet-name>CookieTest</servlet-name>
<servlet-class>CookieTest</servlet-class>
</servlet>
<servlet>
<servlet-name>ForwardTest1</servlet-name>
<servlet-class>ForwardTest1</servlet-class>
</servlet>
<servlet>
<servlet-name>IncludeTest1</servlet-name>
<servlet-class>IncludeTest1</servlet-class>
</servlet>
<servlet>
<servlet-name>ForwardedPage</servlet-name>
<servlet-class>ForwardedPage</servlet-class>
</servlet>
<servlet>
<servlet-name>ForwardTest2</servlet-name>
<servlet-class>ForwardTest2</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet>
<servlet-name>IncludeTest2</servlet-name>
<servlet-class>IncludeTest2</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet>
<servlet-name>IncludedPage</servlet-name>
<servlet-class>IncludedPage</servlet-class>
<load-on-startup>-1</load-on-startup>
</servlet>
<servlet>
<servlet-name>ContextListenerTest</servlet-name>
<servlet-class>listeners.ContextListenerTest</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>SessionListenerTest</servlet-name>
<servlet-class>listeners.SessionListenerTest</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletContextTest</servlet-name>
<url-pattern>/context</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RequestHeaderTest</servlet-name>
<url-pattern>/header</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RequestInfoTest</servlet-name>
<url-pattern>*.info</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SessionTest</servlet-name>
<url-pattern>/session</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CookieTest</servlet-name>
<url-pattern>/cookie</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ForwardTest1</servlet-name>
<url-pattern>/forward1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>IncludeTest1</servlet-name>
<url-pattern>/include1</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ServletContextTest</servlet-name>
<url-pattern>*.conf</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RequestHeaderTest</servlet-name>
<url-pattern>/header/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RequestInfoTest</servlet-name>
<url-pattern>/info</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>RequestInfoTest</servlet-name>
<url-pattern>/info/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ForwardTest2</servlet-name>
<url-pattern>/forward2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>IncludeTest2</servlet-name>
<url-pattern>/include2</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ForwardedPage</servlet-name>
<url-pattern>/ForwardedPage/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>IncludedPage</servlet-name>
<url-pattern>/IncludedPage/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SessionTest</servlet-name>
<url-pattern>/session/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ContextListenerTest</servlet-name>
<url-pattern>/ContextListenerTest</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>SessionListenerTest</servlet-name>
<url-pattern>/SessionListenerTest</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!--
<filter>
<filter-name>HitCounterFilter</filter-name>
<filter-class>filters.HitCounterFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HitCounterFilter</filter-name>
<url-pattern>/index.html</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>HitCounterFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
<listener>
<listener-class>listeners.ContextListener</listener-class>
</listener>
<listener>
<listener-class>listeners.ContextListener2</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionListener</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionListener2</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionAttributeListener</listener-class>
</listener>
<listener>
<listener-class>listeners.SessionActivationListener</listener-class>
</listener>
-->
<!--
<security-role>
<role-name>jsvuser</role-name>
</security-role>
<security-constraint>
<display-name> Jeus WebContainer Example Security Constraint </display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/</url-pattern>
<url-pattern>/index.html</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<description>no description</description>
<role-name>jsvuser</role-name>
</auth-constraint>
<user-data-constraint>
<description>no description</description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
-->
</web-app>
3) WEBMain.xml
<?xml version="1.0"?>
<!DOCTYPE web-container PUBLIC "-//Tmax Soft., Inc.//DTD WEB Main Config 4.0//EN"
"http://www.tmaxsoft.com/jeus/dtd/4.0/web-main-config.dtd">
<web-container>
<context-group>
<group-name>MyGroup</group-name>
<group-docbase>webapps</group-docbase>
<context>
<context-name>examples</context-name>
<context-path>/examples</context-path>
</context>
<session-config>
<shared>true</shared>
<timeout>20</timeout>
</session-config>
<webserver-connection>
<http-listener>
<listener-id>http1</listener-id>
<port>8088</port>
<output-buffer-size>8192</output-buffer-size>
<thread-pool>
<min>25</min>
<max>30</max>
<step>2</step>
<max-idle-time>1000</max-idle-time>
</thread-pool>
</http-listener>
<webtob-listener>
<listener-id>webtob1</listener-id>
<port>9900</port>
<hth-count>1</hth-count>
<registration-id>MyGroup</registration-id>
<thread-pool>
<min>4</min>
<max>10</max>
<step>2</step>
<max-idle-time>30000</max-idle-time>
<max-wait-queue>4</max-wait-queue>
</thread-pool>
</webtob-listener>
</webserver-connection>
<logging>
<error-log>
<target>stdout</target>
<buffer-size>0</buffer-size>
<level>debug</level>
<valid-day>1</valid-day>
</error-log>
<user-log>
<buffer-size>0</buffer-size>
<valid-day>1</valid-day>
</user-log>
<access-log>
<buffer-size>0</buffer-size>
<valid-day>1</valid-day>
<log-format>
<time-format>default</time-format>
</log-format>
</access-log>
</logging>
</context-group>
</web-container>
-------------------------------------------------------------------------------------
4. webtob3.1.6 설치
- webtob_3.1.6(build3).exe 실행하여 설치
- http://www.tmax.co.kr의 download링크를 클릭 (회원가입필요)
- license를 신청 -> 이메일을 통해 license부여
- 부여받은 license.dat파일을 c:\webtob\license에 복사
-------------------------------------------------------------------------------------
5. C:/jeus/lib/datasource 폴더에 classes12.zip 복사 (오라클 데이터베이스 사용시)
-------------------------------------------------------------------------------------
6. 환경변수 설정
- 자신의 환경에 맞게 설정합니다.
ex) 제 컴의 경우 (오라클8i 사용) : 사용자변수는 모두 삭제, 시스템변수만 설정
1) CLASSPATH
.;C:\servlet.jar;C:\j2sdk1.4.1_07\lib\tools.jar;c:\j2sdk1.4.1_07\jre\lib\rt.jar
2) PATH
C:\oracle\ora81\bin;C:\Program Files\Oracle\jre\1.1.7\bin;C:\Jeus42\lib\etc\ant\bin;C:\Jeus42\bin;C:\Jeus42\lib\system;C:\Jeus42\webserver\bin;C:\webtob\bin;C:\j2sdk1.4.1_07\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\ESTsoft\ALZip
3) WEBTOBDIR
C:\webtob
---------------------------------------------------------------------------------------
7. 시동
1) webtob를 실행합니다.
- webtob 실행 : wsboot
- webtob 상태 확인 : wsadmin st (-s or -v or -p)
- webtob 종료 : wsdown
2) JEUS를 실행합니다.
- 우선 command창을 두개 띄웁니다.
- 하나의 command창에 "jeus + 엔터"
- 다른 command창에 "jeusadmin 자신의컴퓨터이름" -> "아이디/패스워드 입력" ->"boot"
- 에러가 없다면 실행 성공!!!
- 종료시는 "down -> jeusexit -> exit"
--------------------------------------------------------------------------------------
8. 파일 실제경로 (기본값)
- servlet : C:\Jeus42\webhome\servlet_home\webapps\examples\WEB-INF\classes
- jsp : C:\Jeus42\webhome\servlet_home\webapps\examples
--------------------------------------------------------------------------------------
9 테스팅
- JEUS기본포트는 8088, webtob기본포트는 8080
- 테스트파일은 각자 만들어서 사용하세요.
C:\Jeus42\webhome\servlet_home\webapps\examples
http://192.168.1.139/examples/DBTest.jsp --JSP테스트
C:\Jeus42\webhome\servlet_home\webapps\examples\WEB-INF\classes
http://192.168.1.139/examples/ServletTest --servlet테스트
--------------------------------------------------------------------------------------
10. 폴더관리
- image, js, css html 등은WebToB홈\docs 에 폴더로 관리
- jsp, servlet은 별도 폴더로 관리 (context 설정문서 참조)
--------------------------------------------------------------------------------------
기타 문의는 http://www.tmax.co.kr을 이용하세요.
이 문서는 JEUS+webtob를 사용하면서 계속 업그레이드하겠습니다.
출처블러그 : http://blog.naver.com/realchoky.do