웹어플리케이션서버2011. 5. 11. 13:21

tomcat6를 처음 설치하면(압축풀면)  webapps 폴더 안에 웹페이지에서 디플로이를 관리할 수 있는

host-manager, manager 등이 디폴트로 설치되어 있다. 하지만 이것은 보안적인 측면에서 위배되므로

보통 다 지우는 게 좋다.

하지만 이것을 그냥 지우게 되면

Error Message

심각: Error starting static Resources
java.lang.IllegalArgumentException: Document base /home/msp_solution/web/tomcat/webapps/host-manager does not exist or is not a readable directory

이와 같은 에러를 만나게 된다.

Solution

conf\Catalina\localhost 밑에 context명.xml으로 생성하면, tomcat은 \webapps\context를 docBase 경로로 판단하고 찾는다. 그래서 서버 구동시 위와 같은 에러를 발생시킨다.
아래 xml들을 찾아서 삭제해주면 에러는 발생하지 않는다.

conf\Catalina\localhost\host-manager.xml
conf\Catalina\localhost\manager.xml


Posted by 미랭군

Tomcat 구동 시에 발생하는 에러!!(항상은 아니고, 가끔;)

ioexception while loading persisted sessions java.io.eofexception 
톰캣을 종료할 때 세션을 저장해 두었다가 리스타트 시 저장된 세션을 복구 할때 실패할 경우 발생하는 에러이다.
 

톰캣은 persist session을 저장 할 수 있다고 한다. 
persist session
은 톰캣을 shutdown, restart 할때 생성이 되고, start는 삭제된다고 한다.
그런데 이러한 작업을 실패했을 때, java.io.EOFException이 발생한다는 것이다.


또한, JSP 파일의 파일명의 대소문자를 변경했는데 변경 전 파일을 참조하여 404 에러가 발생하는 경우도 이 경우이다.
예를 들어, 최초 파일 생성을 Test.jsp 로 생성했다가 test.jsp 로 변경하였는데, 실제 접속 시 기존 파일(Test.jsp)을 참조하여 클래스를 찾을 수 없다는 NoClassDefFoundError 에러가 발생할 경우에도 아래와 같이 대처하면 된다.)


해결 방법
1. Tomcat work에 있는 session.ser 파일 삭제 (ser는 SERIALIZED OBJECT FILE )

    이클립스에서 구동시: 
    - workspce 폴더\.metadata\.plugins  \org.eclipse.wst.server.core\tmp0\work\Catalina\localhost

또는, 
2. Context.xml 파일에  <Manager className="org.apache.catalina.session.StandardManager" pathname=""/> 
    추가 해주기 
 
Posted by 미랭군
웹어플리케이션서버2010. 11. 2. 12:35

12   [강좌] Unix 프로세스 Job Control 
http://www.javaservice.net/~java/bbs/read.cgi?m=unix&b=unix&c=r_p&n=925689970

추가하여 terminal에서 exit 할 경우, singla #1 SIGHUP (hang-up signal)이 해당
process에 날아가게 되는데, 보통 .profile 에 다음과 유사하게 기술되어 있는 것을
보셨을 겁니다.

# Set up stty
   stty cs8 -istrip -parenb
   stty kill "^U" intr "^C" eof "^D"
   stty hupcl ixon ixoff

이 중, "stty hupcl" 부분이 바로 hang-up signal을 제어하는 부분인데,
stty hupcl 이면 hang-up signal을 termial exit시에 보내라는 것이고,
stty -hupcl 이면 do not hang-up signal 의 의미를 가집니다.
Solaris의 경우, default가 stty hupcl 로 셋팅되니, background로 실행된
process는 termial exit시에 singal #1 SIGHUP 이 해당 process로 날아가고
이것이 해당 process를 종료시키게 되는 것이죠. 다음을 참조하세요.
http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?stty+1

OS별로 차이점을 보려면, man stty 해 보세요.

또 하나의 방법은 unix 명령어인 "nohup" 이라는 command를 사용할 수 있습니다.
예를 들면
# nohup ./myprocess &

# nohup ./startup.sh

와 같은 방식이지요. nohup이란 이름이 의미하든 "no hang-up signal"이란
의미를 갖습니다.

PS: 73   [info] signals 
http://www.javaservice.net/~java/bbs/read.cgi?m=unix&b=unix&c=r_p&n=974305302
#define SIGHUP      1   /* Hangup (POSIX).  */

Posted by 미랭군