JBoss AS는 오픈소스  미들웨어로 매우 유용하게 사용할 수 있다.
여러가지 자원들을 포함하고 있기 때문에 Java 기반의 프로젝트 수행에 무리가 없다.
하지만, 국내에는 JBoss AS 사용이 많지 않기 때문에 관련 자료가 부실하다.
그나마, 국내 커뮤니티로 JBoss User Group(http://cafe.naver.com/jbossug/)가 있지만
JBoss 6 보다는 JBoss 5.x 에 대한 내용이 많다.

얼마전 회사내 프로젝트를 수행 중 분석서버에서 이용할 수 있도록 하기 위해
로그 표준화 작업을 통해 EJB에서 로그를 남기도록 처리 할 일이 있었다.
JBoss 5.x까지는 로깅 프레임워크로 Log4j를 이용했지만, JBoss 6 부터는 자체 로깅 서비스를
이용해야만 될수 있도록 변경되었다. 그나마 다행인것은 Log4j도 미력하지만 이용할 수 있도록
지원이 된다는 것인데... 며칠동안 삽질을 했지만 안됐다.

결국, 많은 자료를 찾던중 해결책을 찾았다.

아래 절차에 따라 patch하면 정상적으로 사용할 수 있다.

1. 설치된 JBoss 6.0.0.Final 버전의 $JBOSS_HOME/server/$PROFILE(all, default..)의 deployers/jboss-logging.deployer/META-INF/logmanager-jboss-beans.xml 파일 내용중 (A)사항을 (B)사항으로 변경한다.
   (A) <bean name="JBossLogService" class="org.jboss.logmanager.LogService" mode="On Demand"/>
   (B) <bean name="JBossLogService" class="java.lang.Object" mode="On Demand"/>

  => (A) 사항을 (B)사항으로 변경했을 경우, boot.log에 다른 로그까지 계속 쌓이게 된다.
       그러므로, 적용하지 않는것이 좋겠다.

2. JBAS-8791-1.zip 파일의 압축을 해제하여 아래처럼 각각의 해당 디렉토리에 있는 파일을 덮어쓴다.
   JBAS-8791-1.zip : https://issues.jboss.org/secure/attachment/12340210/JBAS-8791-1.zip
   jboss-logmanager-log4j.jar -> $JBOSS_HOME/common/lib/
   jboss-logmanager.jar -> $JBOSS_HOME/lib/
   logging-service-metadata.jar -> $JBOSS_HOME/server/$PROFILE/deployers/jboss-logging.deployer/

3. log4j.jar파일들을 log4j-1.2.16.jar 파일로 모두 대체한다.
   log4j-1.2.16.jar download : http://logging.apache.org/log4j/1.2/download.html
   대상) (1) $JBOSS_HOME/client/log4j.jar -> 삭제 또는 jar확장자 대신 다른이름으로 변경, log4j-1.2.16.jar 복사
         (2) $JBOSS_HOME/common/lib/log4j.jar -> 삭제 또는 jar확장자 대신 다른이름으로 변경, log4j-1.2.16.jar 복사


아마도 이 내용은 다음번 JBoss AS 릴리즈에 반영이 될 것 같지만, 글을 쓰는 현재 시점에 JBoss AS 6.0.0 Final 버전에 대해서는 이렇게 Patch를 해야 할듯 하다.



2011/03/03 10:04 2011/03/03 10:04

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다

Comment on this post!