Ear 패키징을 할 때 주의해야 할 점은 hot deploy가 가능하도록 해야한다.
어설프게 구성하다보면 hot deploy가 잘 안된다. 이미 로딩되어 있는 클래스와 쫑나기 때문인데
이를 회피하기 위해서는 J2ee서버의 Class Loader의 메커니즘을 잘 이해해야 한다.
이에 대한 공부는 별도로 해야할 것 같다. 내용이 좀 많다.
여기서는 기본적인 룰만 설명한다.
EAR
META-INF
application.xml
jboss-app.xml (j2ee 서버들 마다 다를 것 )
tricia-ejb.jar
tricia-web.war
application.xml의 내용은
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
version="1.4">
<module>
<ejb>tricia-ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>tricia.war</web-uri>
<context-root>/</context-root>
</web>
</module>
</application>
여기서 ejb의 인터페이스는 ear 패키징에 넣으면 안된다.
별로의 자바 패키징 .jar로 만들어서 따로 deploy 시킨다.
즉, Jboss의 경우에는 deploy 폴더에
EAR 패키징한 tricia.ear 과 JAR 패키징한 tricia-classes.jar 가 따로 deploy 되어 있으며
tricia.ear에는 tricia-classes.jar에 포함된 클래스가 절대 포함되어서는 안된다.
즉, 인터페이스만 별도로 구성하는 것이며 필요하다면 이 인터페이스를 EJB 클라이언트에게 주어도 된다.
이렇게 해놓으면 ear이 새롭게 deploy 되어도 , JAR 패키징에 포함된 녀석은 새롭게 deploy 된게 아니기 때문에 hot deploy가 잘 될 거다. 그런데 만약 ear 이 새롭게 deploy될때 jar 패키징에 포함된 녀석이 함께 들어가는 순간....망하는 거지.
'기타 잡동사니 > J2EE (JBoss) Server' 카테고리의 다른 글
JBoss Deployment 순서와 관련한 팁 (0) | 2009.02.17 |
---|---|
JBoss 팁 - 필요한 3rd party 라이브러리를 System Wide 적용하는 법 (0) | 2009.02.06 |
JBoss와 MS 2000 SQL 서버 Connection 풀링 (0) | 2009.02.06 |
EJB 3.0 간단해진 API 어떻게 간단해 졌다. (0) | 2009.02.06 |