'TOMCAT'에 해당되는 글 25건

  1. 2018.01.12 [ TOMCAT ] Windows service 설치 ( install tomcat for Windows service )
  2. 2017.03.29 [ TOMCAT ] JNDI 설정법
  3. 2016.07.07 [ TOMCAT ] is quoted with " which must be escaped when used within the value
  4. 2016.07.01 실행 스크립트 작성
  5. 2016.02.17 [ TOMCAT ] out of memory 시 heap dump 설정
  6. 2016.02.17 [ TOMCAT ] was 프로세스 쉽게 구분하기
  7. 2012.11.30 [ TOMCAT ] 메모리 설정 (2)
  8. 2012.09.18 [ TOMCAT ] java.net.BindException: Cannot assign requested address
  9. 2012.06.04 아파치 설치시 ssl 설치 (https 접속)
  10. 2012.03.10 [ TOMCAT ] catalina.out 로그 백업 ( cronolog 사용 )

1. tomcat.apache.org 사이트에 접속 한다.

   eng) access http://tomcat.apache.org

 

2. 윈도우 용 Tomcat 을 다운로드 받는다. (64-bit Windows.zip)

   인스톨용으로 설치를 하면 서비스 등록 시 java 옵션 변경 및 서비스 삭제가 어렵다.

    eng) download Tomcat for windows (64-bit Windows.zip)

           If install Windows service installer, it is difficult for you to change JAVA OPTION and to remove Windows service.

 

3. zip 파일의 압축을 푼다.

   eng) extract zip file

 

4. 환경 변수로 %CATALINA_HOME% 을 tomcat 압축이 풀린 폴더로 잡아준다.

   eng) set environment variable %CATALINA_HOME% (extracted folder)

 

5.  cmd.exe 를 실행 시켜서 cmd 창을 연다.

   eng) execute cmd.exe

 

6. cd %CATALINA_HOME%\bin 으로 실행 폴더로 이동 한다.

   eng) move %CATALINA_HOME%\bin  folder

 

 

7. service.bat install [등록할 서비스 명] 을 입력 하여 Windows Service 를 등록 한다.

   eng) execute service.bat install [service name] to register Windows Service

 

 

8. 쉬운 실행 및 옵션 변경을 위해 gui 실행 파일의 이름을 변경 시킨다.

    - tomcat7w.exe 또는 tomcat8w.exe -> 서비스이름.exe

   eng) rename Windows tomcat gui (graphic user interface) execution file to set easily JAVA OPTION and control TOMCAT Service

    - tomcat7w.exe or tomcat8w.exe -> service_name.exe

 

9. tomcat gui 파일을 실행 시킨다. (Java 탭을 이용해 메모리 또는 JAVA 옵션 변경이 가능하다.)

  eng) execute service_name.exe  ( Use Java tab for changing JAVA Option )

 

 

 

10. 제어판 > 관리도구 > 서비스 에서 서비스 등록 여부를 확인 한다.

   eng) move Control Panel > Administration Tools > Service

          Check registered Windows Service (tomcat)

 

실행 환경 : Tomcat 7 , Oracle 11 

 1. $TOMCAT_HOME/conf/server.xml 파일 설정

  <GlobalNamingResources>          
    <Resource name="jdbc/test" auth="Container" driverClassName="oracle.jdbc.OracleDriver" type="javax.sql.DataSource"
              factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
       username="scott"
       password="tiger"
              url="jdbc:oracle:thin:@192.168.0.10:1521:test" maxActiv="20" maxIdle="10" />            
  </GlobalNamingResources>

와 같이 <Resource> 를 추가 해 준다.

 

 2. $TOMCAT_HOME/lib 에 DB 버전에 맞는 driver jar 파일을 복사 해 준다.

 3. $TOMCAT_HOME/conf/context.xml 파일 설정

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
 <ResourceLink name="jdbc/test" global="jdbc/test" type="javax.sql.DataSource"/>

</Context>

  와 같이 <Context> 안에 <ResourceLink> 를 넣어 준다.

  4. Web Application 의 WEB-INF/web.xml 파일 설정

   <web-app> 태그 안에

     <resource-ref>
          <res-ref-name>jdbc/test</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
     </resource-ref>

     태그와 같이 넣어 준다.

 

* 설정 내용 확인 법

JAVA 소스로

   Context init = new InitialContext();
   Context envContext = (Context)init.lookup("java:/comp/env");
   DataSource ds = (DataSource)envContext.lookup("jdbc/test");
   conn = ds.getConnection();
   pstmt = conn.prepareStatement("SELECT 1 FROM DUAL");

와 같은 방법으로 테스트 해 보면 된다

 

'TOMCAT > JNDI 설정법' 카테고리의 다른 글

[ TOMCAT ] JNDI 설정법  (0) 2017.03.29

is quoted with " which must be escaped when used within the value 

 

위와 같은 오류 발생 시 tomcat 의 경우 예전에는

 

<%= strDate+"" %> 와 같이 스크립트릿 안의 특수문자 사용이 가능 했으나

 

이것은 jsp 표준에서 벗어난 문법이다. 그래서 최근의 버전에선

 

해당 문법 사용이 금지되면서 해당 에러가 발생한다.

 

그러므로 실제로는

 

<%

String str = strDate+"";

out.println(str);

%>

 

이런 식으로의 코드 전환이 필요하다.

 

그러나 legacy 코드를 전부 전환하는 것이 쉽지 않기 때문에

 

${CATALINA_HOME}/conf/catalina.properties 에

 

org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false

 

라는 내용을 추가 해주면 문법에 대한 엄격한 적용을 피할 수 있다.

 

rem # smps_start_script
rem ===================================
rem Server명
set SERVER_NAME=spms
rem JAVA_HOME
set JAVA_HOME=C:\Java\jdk1.7.0_80
rem tomcat 엔진 경로
set CATALINA_HOME=D:\app\tomcat7.0.70
rem 도메인 위치
set CATALINA_BASE=D:\app\tomcat7.0.70\domains\spms
rem gc option
set GC_LOG_HOME=%CATALINA_BASE%\logs\gc
for /f "tokens=1-4 delims=/ " %%i in ('date /t') do set date=%%i%%j%%k%%l
for /f "tokens=1-3 delims=: " %%i in ('time /t') do set time=%%j-%%k
set datetime=%date%.%time%
set GC_LOG=gc_%SERVER_NAME%_%datetime%.log
set GC_OPTION=-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:%GC_LOG_HOME%\%GC_LOG%
rem out of memory option
set OOM_OPTION=-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=-Xloggc:%CATALINA_BASE%\logs
rem # set mem_args
set USER_MEM_ARGS=-Xms512m -Xmx512m -XX:NewSize=192m -XX:MaxNewSize=384m -XX:PermSize=128m -XX:MaxPermSize=256m

rem tomcat option
set CATALINA_OPTS=-Denv=product -Denv.servername=%SERVER_NAME% %GC_OPTION% %OOM_OPTION% %USER_MEM_ARGS%
rem ===================================


rem start_tomcat
call %CATALINA_HOME%\bin\startup.bat



'TOMCAT > multi instance 사용' 카테고리의 다른 글

실행 스크립트 작성  (0) 2016.07.01

1. windows 의 경우 (tomcat7 기준이며 hotspot, oracle java 기준입니다.)

 

%TOMCAT_HOME%\bin\catalina.bat 파일의 맨 밑에

 

rem Execute Java with the applicable properties
if not "%JPDA%" == "" goto doJpda

~~~~~ 라고 나오는 곳이 있는데 rem ~~~ 바로 윗줄에

 

rem out of memory setting
set "JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\test"

 

와 같이 설정 해 주면 된다.

 

-XX:+HeapDumpOnOutOfMemoryError : out of memory 시 heap dump 를 떨어뜨리는 설정

 

-XX:HeapDumpPath=<path> : path 에 heapdump 떨어뜨리고 싶은 경로를 지정하는 설정

was 인스턴스의 java 쉽게 구별하는 법 (tomcat 7 기준 , weblogic 은 10.3.6 기준) 

  

- java.exe 를 복사 해서 java_[서비스명].exe  파일로 바꾼다


- tomcat 의 경우 setclasspath.bat, 또는 .sh 파일의


set _RUNJAVA="%JRE_HOME%\bin\java.exe" 부분을 변경 해 준다 (java_[서비스명].exe

로)


- weblogic 일 경우
startWebLogic.sh, bat 파일 마지막 부분을
if "%WLS_REDIRECT_LOG%"=="" (
 echo Starting WLS with line:
 echo %JAVA_HOME%\bin\java_weblogic %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
 %JAVA_HOME%\bin\java_weblogic %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%
) else (
 echo Redirecting output from WLS window to %WLS_REDIRECT_LOG%
 %JAVA_HOME%\bin\java_weblogic %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%  >"%WLS_REDIRECT_LOG%" 2>&1
)
와 같이 변경해 주면 된다.

 

catalina.sh 의

 

# OS specific support.  $var _must_ be set to either true or false.
cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac

 

라고 기술된 곳 밑에

 

JAVA_OPTS="-Djava.awt.headless=true -server -Xms2048m -Xmx3072m -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC"

 

와 같이 설정 한다.

====================

 

xms : 최소 메모리

 

xmx : 최대 메모리

 

MaxPermSize : 동적 메모리 최대 사용량

 

'TOMCAT > tomcat 메모리 설정' 카테고리의 다른 글

[ TOMCAT ] 메모리 설정  (2) 2012.11.30
TOMCAT 을 구동 할 때 위와 같은 에러가 발생 한다면

 

/etc/hosts 파일을 수정한 것이 아닌지 의심해 볼만 하다.

 

 127.0.0.1 localhost 가 정상적으로 있는지 확인 해야 한다.

ssl 설치

http://www.openssl.org

//32BIT 일때

./config --prefix=/usr/local/ssl

make

make install

 

//./config --prefix=/usr/local/ssl -fPIC 이렇게 실행 해야 할 때도 있음

//우분투에선 -fPIC 옵션 안먹는데..(32bit ㅜ.ㅜ)

 

 


apache 설치

http://httpd.apache.org/


./configure --prefix=/usr/local/apache2.4 \
--enable-mods-shared=most \
--enable-module=so \
--enable-so \
--enable-rewrite \
--enable-mods-shared=ssl \
--with-ssl=/usr/local/ssl \
--enable-ssl \
--with-mpm=worker \
--enable-cache \
--enable-file-cache \
--enable-charset-lite


make

make install

 

 

//apache 설치시에
//configure: error: ... Error, SSL/TLS libraries were missing or unusable

//export LIBS=-ldl

//export LD_LIBRARY_PATH="/usr/local/openssl/"
//export LIBS="-L/usr/local/openssl"
//export CPPFLAGS="-I/usr/local/openssl/include/openssl" 

//이라고 쉘상에 쳐주고 다시 configure 할 것 (64bit 일 때 발생)

 

//configure: error: APR not found.  Please read the documentation. 오류 발생시
//우분투
sudo apt-get install libapreq2-dev
sudo apt-get install libaprutil1.dev

 


openssl 생성

cd /usr/local/apache2.4/conf
mkdir sslkeys
cd sslkeys

//key 파일 생성
openssl genrsa -des3 -out 211.63.6.184.key 2048
//csr 파일 생성 (서명 정보가 들어 있는 파일)
openssl req -new -key 211.63.6.184.key -out 211.63.6.184.csr

Country Name : 국가 => KR
State or province Name : 시/도/군 => Seoul
Locality Name : 구/군 => Seocho
Organization Name : 회사 => Incross
Organization Utin Name : 부서 => System2
Common Name : 이름 중 성 : Jung

Email Address : 메일주소 => shonm@incorsss.com
A Challenge password : ~~~~
An optional company name : ~~~

//crt 파일 생성 (인증서 생성)
openssl x509 -in 211.63.6.184.csr -out 211.63.6.184.crt -req -signkey 211.63.6.184.key -days 365

 

//아파치 구동시
//Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
cd /usr/local/apache2.4/conf
vi httpd.conf
ServerName:80 => ServerName ip(서버아이피):80
이렇게 되어 있는 곳을 고친다.


//httpd-ssl.conf 추가
cd /usr/local/apache2.4/conf
vi /usr/local/apache2.4/conf/httpd.conf

include conf/extra/httpd-ssl.conf
//주석 부분 주석 #삭제


//httpd-ssl.conf 수정
cd /usr/local/apache2.4/conf/extra
vi /usr/local/apache2.4/conf/extra/httpd-ssl.conf

#Listen 443 밑부분에 virtualhost 태그 들어가기 전에
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
추가

<VirtualHost _default_:443> => <VirtualHost 서버IP:443>
=>ex) <VirtualHost 211.63.6.184:443>

#SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5을 주석 처리(#을 앞에 붙임)
#<VirtualHost _default_:443> 태그 안에
#SSLCertificateFile "/usr/local/apache2.4/conf/server.crt" 주석 처리
#SSLCertificateKeyFile "/usr/local/apache2.4/conf/server.key" 주석 처리


#SSLEngine on 하단에

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile "/usr/local/apache2.4/conf/sslkeys/211.63.6.184.crt"

SSLCertificateKeyFile "/usr/local/apache2.4/conf/sslkeys/211.63.6.184.key"
추가


#특정 디렉토리로 alias 걸어주고 싶다면 아래와 같이 하면 됨 </VirtualHost> 앞에

JkMount /cms_shop/* cms
JkMount /cms_shop/*.jsp cms


Alias /cms_admin_poc "/home/smadeco_cms/cms_admin_poc"
<Directory "/home/smadeco_cms/cms_admin_poc">
Options Indexes FollowSymLinks
</Directory>
추가

//Invalid command 'SSLPassPhraseDialog', perhaps misspelled or defined by a module not included in the server configuration
//에러 발생시
//httpd.conf 의 LoadModule ssl_module modules/mod_ssl.so 부분 주석 풀어줌
//비슷한 로그들이 발생시 LoadModule 쪽에서 so 파일들 주석을 푸는 것으로 해결해야 함

 

//http://211.63.6.184 로 들어오면 자동으로 https://211.63.6.184 이렇게 바꿔주고 싶다면
//httpd.conf 에 맨 하단에 아래의 문구를 첨가해주면 됨
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [C]

</IfModule>

 

 

 

#https://서버IP   이렇게 브라우저로 접근시 It works 가 나오면 성공임

'TOMCAT > 톰캣 아파치 연동' 카테고리의 다른 글

아파치 설치시 ssl 설치 (https 접속)  (0) 2012.06.04
아파치 톰캣 연동 (리눅스)  (14) 2010.03.11
톰캣 아파치 연동  (0) 2009.11.10
catalina.out 파일을 그대로 로그가 축적되도록 놔두면 무한정 파일 크기가

늘어 난다.

그래서 앞에서 쉘 스크립트로 꼼수를 써서 catalina.out 을 백업 받는 방법을

써놨는데 open source 를 써서 적용 시키는 방법으로 바꿔보려고 한다.

다음의 내용은 내가 실제 시스템에 적용한 내용이다.

1.
http://cronolog.org/ 에서 다운 받는다.

2. tar xvfz cronolog-1.6.2.tar.gz 로 압축을 푼다.

3. cd cronolog-1.6.2 로 들어간 다음

4.  ./configure --prefix=/home/sfs/cronolog 로 설치 설정 한다.

5. make

6. make install

7. /home/sfs/tomcat/bin/vi catalina.sh  와 같이 tomcat 의 catalina.sh 파일을 아래와 같이 수정 한다.

266,267  번째 줄의
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
를 지우고
 org.apache.catalina.startup.Bootstrap "$@" start | /home/sfs/cronolog/sbin/cronolog /home/sfs/tomcat/logs/"opweb"%Y%m%d".log" >> /dev/null &
를 쓴다.

278,279 번째 줄의
      org.apache.catalina.startup.Bootstrap "$@" start \
      >> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
를 지우고
 org.apache.catalina.startup.Bootstrap "$@" start |  /home/sfs/cronolog/sbin/cronolog /home/sfs/tomcat/logs/"opweb"%Y%m%d".log" >> /dev/null &
를 쓴다.

8. tomcat 재구동 하여 log 가 opweb20120312.log 와 같은 형식으로 쌓이는지 확인 한다.


위에서 조심할 점은 catalina.sh 에 수정 할 곳이 2군데라는 점이다.

그런 점만 주의 하면 무리 없이 될 것으로 보인다.


1 2 3 

글 보관함

카운터

Total : 2,876,462 / Today : 148 / Yesterday : 1,260
get rsstistory!