'QT 시스템'에 해당되는 글 8

  1. 2012.05.22 이클립스에서 실행되지 않는 웹 어플리케이션
  2. 2010.07.27 예외 메세지를 제대로 보여주기
  3. 2009.06.02 svn: PROPFIND request failed
  4. 2009.05.20 HP-UX에서 프로그램 설치하기
  5. 2009.05.20 Apache + Tomcat 연동 확인
  6. 2009.05.19 Tomcat 에 Heap 메모리 할당하기
  7. 2009.05.18 동작하지 않는 메뉴
  8. 2009.05.17 HP-UX Operating System Release History

이클립스에서 실행되지 않는 웹 어플리케이션

- Tomcat 5.5 인데 어플리케이션이 제대로 실행이 되지 않는다.
로그가 자세하게 않나온다. ==> [todo] 이거 설정 바꾸면 자세하게 나오지 않나?

심각: Error listenerStart

- web.xml의 순서가 잘못된 것으로 파악.

- 검색해보니 Log4jConfigListener를 ContextLoaderListener보다 먼저 하라고 하는데 나는 해당 안됨.
동일한 소스가 개발기, 운영기에서 잘 돌아가고 있음.
Listener 설정을 빼니깐 어느 정도 돌아가서 그런줄 알았음.

- 혹시나 해서 6.0에서 돌리니깐 에러가 자세하게 나옴.
클래스를 못찾는다.

- 여기 저기 뒤져보니 클래스 파일이 배포되지 않고 있었다.
D:\reps\eclipse_indigo_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\TestWEBApp\WEB-INF\ 에 classes/가 없다.

왜.....?
여기 메커니즘은 잘 모르는데...
잘 실행되는 웹 어플리케이션과 비교해보니 조금 다른다.
무슨 이유인지 5번째 줄이 빠져 있다.

소스 디렉토리가 달라서 이걸 적용하다가 잘못된거 같기도 하고, SVN에서 받으면서 잘못 되었나???
3시간을 헤맷다.

이걸 잘 활용하면 환경 설정 파일을 다른 곳에 두고 배포할 수도 있겠다.
그리고 소스 디렉토리를 WEB-INF/ 아래에 두지마.
WEB-INF/ 가 통으로 배포되어서 소스까지도 배포된다.
(exclude 할 수 있을려나?)

- 그런데 다음날 실행해보니 또 404 에러가 떨어진다.
Clean을 한다.

예외 메세지를 제대로 보여주기

에러메세지 앞부분에 자바 패키지명이 붙는 것을 없애자.
xxx.user.service.LoginException: 사용자 정보가 존재하지 않습니다.

메세지를 보아하니 Exception 클래스를 사용한 것 같은데 Exception#toString()을 그대로 쓴거 같다.
Exception#getMessage()를 이용하도록 수정하면 되겠네.

SpringMVC를 사용했으니깐  HandlerExceptionResolver 를 사용했을거고, 관련 설정을 확인해 본다.
모든 예외는 exception.jsp 로 이동함.(view를 찾을 때에는 viewResolver가 사용됨)
어라...제대로 처리하고 있는데...

예외를 생성한 곳을 보니
로그인을 처리하는 서비스에서 LoginException("사용자 정보가 존재하지 않습니다.") 을 발생시키고, 컨트롤러에서는 LoginException을 다시 생성해서 던지고 있다.

예외가 겹친 경우에도 위와 같은 메세지가 보인다.

exception.jsp에서 실제 예외를 찾아서 보여주자.

svn: PROPFIND request failed

Subversion을 사용하다가 갑자기 에러가 발생했다.

    RA layer request failed
svn: PROPFIND request failed on '/svn/repos_proj/trunk/src/proj1'
svn: PROPFIND of '/svn/repos_proj/trunk/src/proj1': could not connect to server (http://10.20.30.40:8080)

Q사 서브버전 서버에 접속이 되지 않는다.
회사 아이피에서만 접근이 가능하도록 되어 있다.
서브버전 서버가 죽었나?

전날 외근나갔다가 아이피를 변경한게 기억이 났다.
다시 회사 아이피로 설정하니 된다.

HP-UX에서 프로그램 설치하기

HP-UX는 depot이라는 독자적인 패키징 시스템을 가지고 있다.

- lsof 설치하기
  1. http://hpux.connect.org.uk/ 에서 필요한 패키지를 찾는다.
  2. lsof는 http://hpux.connect.org.uk/hppd/hpux/Sysadmin/lsof-4.82/ 에 있음.
  3. 해당 OS와 Architecture에 맞는 파일을 다운로드한다.
  4. lsof-4.82-ia64-11.23.depot.gz 을 다운받는다.
  5. # su - root
    # gzip -d lsof-4.82-ia64-11.23.depot.gz
    # LANG=C
    # swinstall -s /tmp/lsof-4.82-ia64-11.23.depot //절대경로 사용할 것.
  6. 텝, 화살표키를 이용해서 이동하고, 스페이스바, 엔터로 선택할 수 있다.
    Actions -> Install 로 설치한다.
- 삭제하기
# swremove

- 참고자료
HP-UX 개발환경 설정및 시스템 정보가져오기
HP-UX 에서 소프트웨어 설치/삭제 하기



Apache + Tomcat 연동 확인

이미지나 정적 파일처리는 아파치에서 하게 된다.

톰캣을 내리고 이미지를 요청해서 처리가 되면 아파치에서 이미지를 제대로 처리한다는 말이다.
그러나 503 Service Unavailable 에러가 발생한다.

그래서 server.xml 에서 다음의 Valve 를 활성화시킨다.
<Valve className="org.apache.catalina.valves.AccessLogValve"
         directory="logs"  prefix="localhost_access_log." suffix=".txt"
         pattern="common" resolveHosts="false"/>

이미지를 요청하면
# tail -f tomcat/logs/localhost_access_log.2009-05-19.txt
111.20.30.90 - - [19/May/2009:22:49:57 +0900] "GET /images/prev.gif HTTP/1.1" 304 -

# tail -f apache/logs/access_log
111.20.30.90 - - [19/May/2009:22:49:57 +0900] "GET /images/prev.gif HTTP/1.1" 304 -

아파치에서 이미지파일을 처리한다면 톰캣 access 로그에는 남지 않아야 되지 않나?

그리고 존재하지 않는 이미지 파일을 요청하면 404 에러가 발생하는데 아파치에 설정된 404 페이지가 나와야 한다.
그런데 지금은 톰캣의 404 페이지가 나온다.

[todo] modjk 설정을 다시 해봐야 할듯, 아마도 모든 요청이 tomcat 으로 가게 되어서 그럴거야

Tomcat 에 Heap 메모리 할당하기

Q사 T시스템 사이트가 열리지 않는 경우가 발생

Tomcat 구동시 Heap 메모리를 증가시켰는데도 Hangup 현상이 계속 발생함.

# ps -efx | grep java //x 옵션을 사용해서 프로세스를 확인
root 10733     1  0  5월 15  ?         2:56 /opt/java1.5/bin/IA64N/java -Dserver.type=real -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -XdoCloseWithReadPending -Djava.endorsed.dirs=/opt/WS/tomcat/common/endorsed -classpath :/opt/WS/tomcat/bin/bootstrap.jar:/opt/WS/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/opt/WS/tomcat -Dcatalina.home=/opt/WS/tomcat -Djava.io.tmpdir=/opt/WS/tomcat/temp org.apache.catalina.startup.Bootstrap start
oracle 12243 12238  0  2월 19  ?        94:04 /oracle/app/oracle/product/10g/db_1/jdk/bin/IA64N/java -server -Xmx256M -XX:MaxPermSize=96m -XX:MinHeapFreeRatio=20 -XX:MaxHeapFreeRatio=40 -XdoCloseWithReadPending -DORACLE_HOME=/oracle/app/oracle/product/10g/db_1 -Doracle.home=/oracle/app/oracle/product/10g/db_1/oc4j -Doracle.oc4j.localhome=/oracle/app/oracle/product/10g/db_1/HOST/sysman -DEMSTATE=/oracle/app/oracle/product/10g/db_1/HOST -Doracle.j2ee.dont.use.memory.archive=true -Djava.protocol.handler.pkgs=HTTPClient -Doracle.security.jazn.config=/oracle/app/oracle/product/10g/db_1/oc4j/j2ee/OC4J_DBConsole_HOST/config/jazn.xml -Djava.security.policy=/oracle/app/oracle/product/10g/db_1/oc4j/j2ee/OC4J_DBConsole_HOST/config/java2.policy -Djava.security.properties=/oracle/app/oracle/product/10g/db_1/oc4j/j2ee/home/config/jazn.security.props -DEMDROOT=/oracle/app/oracle/product/10g/db_1/HOST -Dsysman.md5password=true -Drepapi.oracle.home=/oracle/app/oracle/product/10g/db_1 -Ddisable.checkForUpdate=true -Djava.awt.headless //이놈은 뭘까?

프로세스를 확인해보니 옵션이 적용되지 않았다.[각주:1]

catalina.sh에 CATALINA_OPTS="$CATALINA_OPTS -server -Xms1024m -Xmx2048m" 을 추가했는데도...

확인해보니 catalina.sh에서 setenv.sh을 호출하는데 거기에서 CATALINA_OPTS="-XdoCloseWithReadPending" 이러고 있다.(Tomcat 구동 쉘/배치파일 분석 참고)
윽...

setenv.sh에 설정옵션을 넣고 재구동시킴.

JAVA_OPTS="-Dserver.type=real" //real 보다는 prod가 낫지 않나?
CATALINA_OPTS="$CATALINA_OPTS -server -Xms512m -Xmx1024m -XX:MaxPermSize=256m"
umask 072 //Tomcat 루트권한으로 구동되므로 생성되는 파일을 다른 사용자도 확인가능하도록 한다.

며칠 지켜봐야 할거 같다.


  1. ps -ef 로만 확인하니깐 그렇다. 사소한 것도 확인하도록~ [본문으로]

동작하지 않는 메뉴

FF로 Q사 사이트를 방문해서 메뉴를 눌러도 화면이 변경되지 않는다.
IE에서는 제대로 동작한다.
음... 소스를 보자.


대충 이렇다.
lnk를 직접 참조하고 있다. IE에서만 가능. 그래서 document.getElementById() 를 사용하라고 나온다.
그리고 anchor 태그에 클릭이벤트를 발생시켰다. 함수가 아니라고 나옴.

이렇게 구현하는 것이 어떨까?


=-=> 근데 굳이 이렇게 할 이유가...http://www.plyfly.net/76 봐봐

HP-UX Operating System Release History


http://www.hp.com/softwarereleases/releases-media2/history/slide2.html

Q사 : uname -r
B.11.23

=-=> 이거 다른 곳에 한꺼번에 정리할 곳이 없나?