war단위로 클래스로더가 다르다.

예1. app1.war

예2. app2.war

위와 같은 각각의 war 에 아래의 JSP를 출력한다고 가정한다.

결과는 아래와 같다.

app1.war 의 결과

app2.war 의 결과

이와 같은 문제는 war 가 공통의 ClassLoader를 사용하기 때문에 발생한다.
ClassLoader 가 같은데 FQCN마져 같다면 이미 로드한 클래스 이므로 로딩한 클래스를 리턴하게 된다.

그렇다면 어떻게 해야 할까?
방법은 war 별로 클래스로더를 나누면 된다.

사실 위의 결과는 설정이 틀렸기 때문이다.
app1.war 를 복사하여 app2.war 를 만들었기 때문에 설정을 하나 빠뜨렸다.

jboss-web.xml 에서 아래와 같이 seam.jboss.org:loader 를 자기 자신으로 설정하면 된다.

마찬가지로 app2.war 의 경우는 app2.war 로 설정한다.

이렇게 하면 war 별로 ClassLoader 가 생성되어 각각 관리토록 해준다.

http://www.openscope.net/2010/07/15/setting-up-a-jboss-instance-v5-x-class-loading/

그외 클래스로더에 대해서는 아래 사이트가 참고할만하다.

http://news.naver.com/main/read.nhn?mode=LSD&mid=sec&sid1=105&oid=092&aid=0000008699

http://whiteship.tistory.com/2581

This entry was posted in JBoss. Bookmark the permalink.