Search

'EJB'에 해당되는 글 2건

  1. 2006.09.07 [불펌]JBOSS 소개와 설치 2
  2. 2006.09.07 [불펌]JBOSS 소개와 설치 1

[불펌]JBOSS 소개와 설치 2

Projects/Server 2006.09.07 21:50 Posted by soulfree >동네청년<
JBoss 탐험기를 다루는 본 기사에서는 오픈 소스 프로젝트로 진행되는 EJB 컨테이너인 JBoss의 설치부터 시작하여 간단한 예제를 만들고 실행하는 과정을 다룰 것이다. 본 기사는 EJB를 공부하고 싶어하는 자바 엔지니어(단, 초급자 제외)를 대상으로 작성되었다. 특히, 금전적인 부담으로 인해 상용 EJB 컨테이너를 살 능력이 없는 사람에게는 더욱 더 도움이 될 만한 기사이다. 왜냐… 공짜이니까…

1. 예제 프그램들

지난 기사(JBoss 탐험기 (상): JBoss 소개와 설치)에서는 설치와 간단한 테스트를 해보았다. 이제부터는 본격적인 EJB 예제를 실행해보도록 하자. 세션 빈과 엔티티 빈으로 나누어 이 두 가지에 대해 예제를 실행해 볼 것이다. 이 두 가지 모두 앞에서 설치한 예제 폴더에 있는 것들이다. 소스 설명은 따로 필요가 없다. 워낙 간단한 예제라서 EJB에 대한 상식이 있다면 누구나 쉽게 이해할 수 있기 때문이다.

1.1 Session bean

예제로는 'Interest'라는 무 상태 세션 빈을 사용할 것이다. 이 예제는 간단하게 이자 계산을 해주는 프로그램이다. 우선 JBOSS_DIST\examples\build 폴더에서 콘솔창을 열도록 한다. 그리고 'ant'라고만 입력하면 아래 [그림 1]과 같이 타겟을 지정하라는 메시지가 나올 것이다.


[그림 1] 타겟을 지정하지 않았다는 메시지

1.1.1 compile

그럼 이번에는 'ant intro-interest-compile'라고 입력해보자. 이번에는 폴더를 생성하고 컴파일을 하는 과정이 메시지로 출력된다.


[그림 2] 컴파일이 정상적으로 수행된 후

실제로 폴더에서 컴파일된 파일들을 확인할 수 있다.


[그림 3] 컴파일 후 생성된 클래스 파일들

1.1.2 jar

이번에는 컴파일된 파일들을 jar 파일로 묶어보자. 다음과 같이 입력한다.
ant intro-interest-jar 
여기까지는 이상 없이 실행될 것이다. 그리고 폴더에서 jar 파일이 생성된다.

1.1.3 deploy

이제 jar 파일을 디플로이 하도록 하자. 다음과 같이 입력한다.
ant intro-interest-deploy 
이것을 실행하면 자동으로 interest.jar 파일이 JBOSS_DIST\server\default\deploy 폴더로 복사되면서 디플로이가 되어야 한다. 그런데 동작하지 않는 것으로 보아 무엇인가 문제가 있는 것 같다. JBOSS_DIST\examples\org\jboss\docs\interest 에 있는 build.xml 파일에서 deploy-ejb-jar 타겟을 보자.
<target name="deploy-ejb-jar" depends="ejb-jar"> <copy file="${build.interest.dir}/interest.jar" todir="${jboss.dist}/deploy" /> </target> 
역시 폴더 설정이 잘못 되어있다. 아마도 JBoss 2.x 버전에서 사용하던 폴도 구조를 변경하면서 미처 반영을 하지 않은 것 같다. 다음과 같이 고치고 다시 실행하자.
<target name="deploy-ejb-jar" depends="ejb-jar"> <copy file="${build.interest.dir}/interest.jar" todir="${jboss.dist}/server/default/deploy" /> </target> 
그러면 아래 [그림 4]와 같이 성공적으로 디플로이 되었다는 메시지가 나올 것이다.


[그림 4] 정상적으로 디플로이된 화면

1.1.4 client

빈이 배치되었으니 클라이언트 프로그램을 실행해서 확인할 차례이다. 다음과 같이 입력한다.
ant intro-interest-client 
이것을 실행하면 테스트용 클라이언트 프로그램이 컴파일되고 실행된다. 그러나 아쉽게도 에러 메시지가 나타난다. 메시지를 살펴보니 몇몇 클래스를 찾을 수 없다는 내용이다. JBOSS_DIST\examples\org\jboss\docs\interest 에 있는 build.xml 파일에서 interest-client 타겟에서 아래와 같이 클래스 패스를 설정하는 부분이 있다.
<target name="interest-client" depends="compile"> <java classname="org.jboss.docs.interest.InterestClient" fork="yes"> <classpath> <pathelement path="${classpath}"/> <pathelement Location="${build.classes.dir}"/> <pathelement Location="${src.resources}"/> </classpath> </java> </target> 
여기에 아래와 같이 2줄을 추가하자.
<target name="interest-client" depends="compile"> <java classname="org.jboss.docs.interest.InterestClient" fork="yes"> <classpath> <pathelement path="${classpath}"/> <pathelement Location="${build.classes.dir}"/> <pathelement Location="${src.resources}"/> <pathelement Location="${jboss.dist}/lib/jboss-common-client.jar"/> <pathelement Location="${jboss.dist}/lib/log4j.jar"/> </classpath> </java> </target> 
다시 실행하여 [그림 5]와 같은 실행 결과가 나왔다면 성공한 것이다.


[그림 5] 클라이언트 실행 결과

1.2 Entity bean

앞에서 interest 세션 빈을 실행해 보았다. 이번에는 엔티티 빈을 실행해 볼 차례이다. 엔티티 빈을 실행하거나 데이터베이스를 사용하기 위해서는 적절한 설정이 필요한데, JBoss를 설치하고 실행하면 기본적으로 Hypersonic 이라는 데이터베이스가 설정되고 구동된다. 그냥 기본으로 제공하는 데이터베이스를 사용하도록 하자.

실행해 볼 엔티티 빈 예제는 'Music CD'이다. 우리가 인터넷으로 CD를 구매하기 위해서는 일단 어떤 CD가 있는지 살펴보게 되는데, 이 예제에서는 이러한 CD 데이터를 데이터베이스를 사용하여 관리할 것이다. 이번에 사용하는 예제는 엔티티 빈 단독으로 실행되는 것이 아니라, CD 자체를 표현하는 엔티티 빈과 CD를 관리하는데 필요한 기능을 담고 있는 CDCollection 세션 빈으로 구성된다. CD 빈은 CD의 타이틀, ID, 아티스트 등에 관련된 메소드들을 제공하며, CDCollection 빈에서는 CD의 추가, 삭제, 검색 메소드를 제공한다. (여기에서의 엔티티 빈은 Container Managed Persistence이다.)

1.2.1 compile

JBOSS_DIST\examples\build에 열려 있는 콘솔창에서 'ant cmp-cd-compile'라고 입력하면 컴파일이 되면서 cd.jar라는 파일이 생성되었다는 메시지가 출력된다. 이 파일 안에는 두 가지의 빈이 모두 포함 되어있다.


[그림 6] 컴파일이 무사히 끝나고 cd.jar 파일 생성

1.2.2 deploy

다른 과정 필요 없이 바로 디플로이 할 수 있다. 이번에는 아주 쉽게 할 수 있다. 단지 JBOSS_DIST\examples\build-examples\cmp-cd\ejb 폴더에 있는 cd.jar 파일을 JBOSS_DIST\server\default\deploy 폴더로 복사만 하면 자동으로 핫 디플로이가 이루어지기 때문이다. 디플로이가 정상적으로 끝나면 역시 아래 [그림 7]과 같은 화면을 볼 수 있다.


[그림 7] 정상적으로 디플로이 된 화면

1.2.3 client

디플로이도 끝났으니 클라이언트 프로그램으로 실행해 볼 차례가 왔다. 세션 빈에서의 클라이언트에서와 마찬가지로 클래스 패스에 누락된 것이 있다. JBOSS_DIST\examples\org\jboss\docs\cmp\cd\build 폴더에 있는 build-client.xml 파일을 수정해보자.
<target name="main" depends=""> <java classname="org.jboss.docs.cmp.cd.${client}" fork="yes" dir="${build.classes.dir}"> <classpath> <pathelement path="${classpath}"/> <pathelement path="${build.classes.dir}"/> <pathelement Location="${jboss.dist}/client/jboss-common-client.jar"/> <pathelement Location="${jboss.dist}/lib/log4j.jar"/> </classpath> </java> </target> 
디플로이만 끝난 상태로는 테이블에 CD 데이터가 아무 것도 없기 때문에 실행하는데 따르는 의미가 없을 것이다. 우선은 CD 데이터부터 입력하도록 하자. JBOSS_DIST\examples\build 콘솔창에서 'ant cmp-cd-upload'라고 실행하면 클라이언트와 서버에서 데이터가 입력되는 과정을 볼 수 있다. "앗, 어떤 데이터가 어떻게 입력이 되나요?" 당연히 이런 질문이 나와야 한다. 데이터는 cds.txt라는 파일에 있으며 파일 내용은 CD 데이터들을 CSV(Comma Separated Value) 형태로 담고 있다. 클라이언트가 실행되면서 이 파일을 읽은 후 CD 내용으로 입력하는 것이다. 아래 [그림 8]은 CD 데이터가 입력되는 서버의 화면이다.


[그림 8] CD 데이터 입력 중

CD 데이터 입력이 끝났으니 이제 CD 목록을 보는 클라이언트를 실행해보자. 'ant cmp-cd-list'는 먼저 입력 되었던 CD 데이터들을 가져 오는 예제이다. 모든 데이터를 삭제하고 싶다면 'ant cmp-cd-remove'라고 실행하면 된다.

이상으로 JBoss 탐험기를 마치겠다. 서문에서 밝혔던 것처럼 이 기사가 EJB를 공부하는 사람들에게 많은 도움이 되었기를 바란다.


참고문헌

  • http://www.jboss.org/online-manual/HTML/index.html
  • http://sourceforge.net/projects/jboss/

    저자: 한빛리포터 김영익

    출처: 한빛미디어

    http://network.hanbitbook.co.kr/view.php?bi_id=411

    http://network.hanbitbook.co.kr/view.php?bi_id=429
  • 신고

    'Projects > Server' 카테고리의 다른 글

    Installing Oracle, PHP, and Apache on Linux  (0) 2006.09.23
    proftpd 계정설정  (0) 2006.09.16
    php 업로드 용량 제한 변경하기  (0) 2006.09.16
    [불펌]JBOSS 소개와 설치 2  (0) 2006.09.07
    [불펌]JBOSS 소개와 설치 1  (0) 2006.09.07
    Tatter tools 설치 - apache 설치  (0) 2006.09.07
    TAG EJB, JSP, 자바

    [불펌]JBOSS 소개와 설치 1

    Projects/Server 2006.09.07 21:49 Posted by soulfree >동네청년<

    출처 - http://blog.naver.com/an5asis


    회사에서 톰켓을 대신해서 JBOSS를 사용한단다.

    그런데 JBOSS에는 톰켓도 내장되어있다!!

    도대체 뭐하는 놈인지 궁금해서 불펌하였다...

    어서 랩실에 서버 만들어서 블로그 돌리고파... 싸이 넘 불편스러워

    ===========================================================

    JBoss 탐험기를 다루는 본 기사에서는 오픈 소스 프로젝트로 진행되는 EJB 컨테이너인 JBoss의 설치부터 시작하여 간단한 예제를 만들고 실행하는 과정을 다룰 것이다. 본 기사는 EJB를 공부하고 싶어하는 자바 엔지니어(단, 초급자 제외)를 대상으로 작성되었다. 특히, 금전적인 부담으로 인해 상용 EJB 컨테이너를 살 능력이 없는 사람에게는 더욱 더 도움이 될 만한 기사이다. 왜냐… 공짜이니까…

    1. JBoss 소개

    http://sourceforge.net/projects/jboss/에 가면 다음과 같은 내용이 있다.

    The JBoss/Server is the leading Open Source, standards-compliant, J2EE based application server implemented in 100% Pure Java…

    쉽게 말해서 100% 자바로 구현되는 J2EE 기반의 애플리케이션 서버이며 오픈 소스 프로젝트로 진행되고 있다는 것이다. J2EE나 EJB 또는 애플리케이션 서버라는 용어에 낯선 분들은 아마도 이 글을 읽기에는 아직 무리인 듯 싶다. 좀더 내공을 쌓은 뒤에 읽어보시길…

    어쨌거나 시중에는 많은 상용 애플리케이션 서버들이 있지만 대부분이 고가의 제품이고, 가난한 개발자들에게는 그림의 떡이다. 물론 평가판을 사용할 수도 있지만 사용 기한이 지나서 사용할 수 없다는 메시지를 보면 가슴이 여간 아픈 것이 아니다. 그러나 JBoss를 사용하면 이런 상처를 받을 필요가 없다. 게다가 소스도 공개되어 있으므로 여력이 된다면 자신이 직접 개발에 참여할 수도 있다. 혹자는 "아무래도 싼 게 비지떡이 아닐까?"라고 의심하는 사람도 있을 것이다. 물론 JBoss에도 버그가 존재하고 상용 제품처럼 화려하지도 않고, 아직 미약한 부분들이 존재한다. 하지만 버그 없는 프로그램이란 어차피 존재하지 않는 것이고(그것이 상용 프로그램이라 할지라도), 공짜로 사용하면서 이 정도 기능과 성능을 내는 제품은 드물 것이다. 서론이 너무 길면 지루하므로 JBoss에 대한 탐험을 바로 시작하자. (본 기사에서는 EJB 컨테이너, J2EE 기반의 애플리케이션 서버는 같은 의미로 사용된다)

    JBoss 3.0은 J2EE 1.3을 기반으로 구현되어 있다. 지원하는 각각의 자세한 사항은 아래와 같다.

  • JDBC 2.0(3rd party)
  • JCA 1.0
  • Servlets/JSP 2.3 (Jetty + Tomcat)
  • JNDI
  • EJB 2.0, full CMP 2.0 engine
  • JMS 1.1
  • JTS/JTA
  • JavaMail
  • Clustering

    아래 [그림 1]은 JBoss의 구조를 나타낸다. JBoss는 모든 기능이 JMX(Java Management Extensions) 기반에서 수행된다. JMX는 다양한 플랫폼과 네트워크 프로토콜에 관련된 문제의 해결책을 제시하는 자바 환경의 장점을 관리 기능에서 사용하기 위해 개발되는 것이다. 현재 텔레커뮤니케이션이나 데이터 통신 분야에서 주로 사용되며, 웹로직 서버에서는 웹 기반의 개발자와 관리자들을 위한 구성과 관리, 모니터링을 위한 툴을 제공하는 데에 사용되고 있다. JMX에 대한 자세한 사항은 썬사의 홈페이지(http://java.sun.com/products/JavaManagement/)를 참고하기 바란다.


    [그림 1] JMX 기반의 JBoss 아키텍쳐

    우리의 관심은 오로지 JBoss이기 때문에 J2EE에 대한 자세한 사항은 다루지 않겠다. J2EE에 대한 보다 자세한 내용은 이미 시중에 출판된 책이나 자료도 많이 있으므로 그러한 자료들을 참고하기 바란다.

    2. 다운로드 받기

    2.1. JBoss 다운로드 받기

    JBoss 사이트(www.jboss.org)에 가면 다음과 같은 문구가 있다.

    JBoss 3.0.0 is our current beta, unstable version. It will run on 1.3+ JVMs…

    JBoss 3.0이 베타 버전이라서 아직 안정적이지 않다지만 그냥 사용하기로 하겠다. 그리고 JBoss 3.0이 JDK 1.3에서 실행된다지만 이미 JDK 1.4를 설치했기 때문에 필자는 무시했다. 별 상관 없을 것 같다.

    JBoss 사이트(www.jboss.org)에서 바이너리 파일을 다운로드 받자(참고로 http://sourceforge.net/projects/jboss에서도 다운로드 가능). 필자가 받은 파일은 Tomcat 4.0.3 버전이 포함된 것이다(jboss-3.0.0RC1_tomcat-4.0.31.zip). 파일 사이즈는 14 메가 바이트 정도로 이 파일에는 소스 코드를 포함하지 않는 바이너리만이 존재한다. 소스 코드를 원한다면 CVS를 이용하거나 소스가 압축된 파일을 받아야 할 것이다. CVS나 Ant 등에 익숙치 않은 개발자라면 바이너리를 다운로드 받는 것이 좋다. 소스 코드로부터 바이너리를 구축하는 데에는 많은 노력과 시간이 필요하기 때문이다. 마지막으로 예제와 문서들은 어디에 있을까? http://www.jboss.org/doco_files/에서 documentation-example.zip 파일을 다운 받자.

    2.2. Ant 다운로드 받기

    JBoss에서 제공하는 예제를 구축하기 위해서는 Ant라는 자바 빌드 도구가 필요하다. Ant는 Jakarta 사이트(http://jakarta.apache.org/builds/ant/release/v1.4.1/bin/)에 가면 다운 받을 수 있다. 본 기사를 쓰는 시점에서는 버전 1.4.1이 가장 최신 버전이다. 그러나 Ant도 버전에 따라 API의 변화가 있기 때문에 될 수 있다면 같은 버전을 다운 받아서 사용하기를 권장한다. Ant에 대한 다른 사항은 설치 후 매뉴얼을 참고하도록 하자.

    3. 설치

    3.1. Ant 설치

    설치는 복잡한 것이 없다. 일단 사이트에서 다운로드 받은 압축 파일(jakarta-ant-1.4.1-bin.zip)을 적당한 위치에 풀어서 놓기만 하면 된다. 이 외에 몇 가지 환경 설정을 추가로 해줄 필요가 있다.

    설치한 폴더가 c:\dev\tools\jakarta-ant-1.4.1 일 경우 다음과 같은 폴더들이 생성된다.

     /bin : Ant 실행을 위한 배치 파일이 있다(유닉스나 리눅스의 경우 쉘 파일 사용) /lib : jar 파일들 /docs : 매뉴얼과 API 문서가 있다. 

    Windows 환경에서는 환경 설정을 다음과 같이 하면 된다.

    set ANT_HOME=c:\dev\tools\jakarta-ant-1.4.1 set PATH=%PATH%;%ANT_HOME%\bin 

    유닉스나 기타 다른 OS에서의 설정에 대해서는 Ant 매뉴얼(http://jakarta.apache.org/ant/manual/install.html)을 참고하기 바란다.

    ※ 기타 ANT에 대한 더 자세한 사항은 위에서 말한 설치 후 매뉴얼 외에도 필자가 쓴
    'ANT(상): Ant 무엇에 쓰는 물건인고?''ANT(하): Ant 무엇에 쓰는 물건인고?'를 참고하면 더 자세한 사항을 쉽게 알 수 있을 것이다.

    3.2. JBoss 설치

    JBoss 설치 이전에 JDK가 설치되어야 하는 것은 너무나도 당연한 것이다.
    JAVA_HOME 환경 변수와 클래스 패스가 적절히 설정되었는지 확인하자.

    JBoss 설치는 간단하다. 적당한 위치에 압축 파일을 풀기만하면 설치는 끝난다. 필자의 시스템이 윈도우 2000이기 때문에 다른 운영체제를 사용하는 분들에게는 죄송하지만, 모든 과정은 윈도우 2000에서 작업한 결과임을 이해해 주면 고맙겠다.

    필자는 JBoss를
    D:\jboss-3.0.0RC1_tomcat-4.0.3 이라는 폴더에 설치했으며 편의상 이 폴더를 JBOSS_DIST라고 부르겠다. 그리고 환경 변수로 설정한다. 압축 파일을 풀면 [그림 2]에서 보는 바와 같이 아래와 같은 폴더들이 생성된다.


    [그림 2] JBoss 설치 후 생성된 폴더들

    3.3. 예제와 문서 설치

    JBOSS_DIST 폴더에서 documentation-example.zip 파일의 압축을 풀면 [그림 3]과 같은 폴더 구조와 파일들이 생성된다.


    [그림 3] JBoss 예제와 문서 설치 후 생성된 폴더들

    3.4. 테스트

    설치가 끝났으면 정상적으로 설치가 이루어졌는지 테스트 해보도록 하자. JBOSS_DIST 밑에 있는 bin 폴더를 보면 run.bat 파일이 있다. 사정없이 이 파일을 실행하자. 메시지가 마구 콘솔에 뿌려질 것이다. 한참을 그러다가 멈추고, 마지막에 16:17:24,235 INFO [Server] JBoss (MX MicroKernel) [3.0.0RC1 Date:200204150356] Started in 1m:3s:21ms 이런 비슷한 메시지가 보이면 서버가 실행되고 대기 상태에 있는 것이다.


    [그림 4] JBoss가 실행된 화면

    이제는 브라우저를 실행시키고 http://localhost:8080를 주소창에 입력하자. [그림 5]와 같은 화면이 보이면 일단 안심해도 된다. JBoss가 실행되면서 Tomcat도 같이 실행되기 때문이다.


    [그림 5] JBoss와 Tomcat이 같이 실행되고 있다

    브라우저에서 http://localhost:8082 를 주소창에 입력하면 아래와 같은 화면이 나온다. 여기에서는 현재 JBoss에서 실행되고 있는 컴포넌트들을 관리할 수 있다. 마치 게시판에서 관리자 화면을 제공하는 것과 같다고 할 수 있다.


    [그림 6] JBoss 관리 화면

  • 신고

    'Projects > Server' 카테고리의 다른 글

    Installing Oracle, PHP, and Apache on Linux  (0) 2006.09.23
    proftpd 계정설정  (0) 2006.09.16
    php 업로드 용량 제한 변경하기  (0) 2006.09.16
    [불펌]JBOSS 소개와 설치 2  (0) 2006.09.07
    [불펌]JBOSS 소개와 설치 1  (0) 2006.09.07
    Tatter tools 설치 - apache 설치  (0) 2006.09.07
    TAG EJB, JSP, 자바