reply.setJMSCorrelationID(request.getJMSCorrelationID()); /* send the JMS reply message */
위의 unique ID는 UUID generator 같은 것을 이용하여 고유의 아이디를 만드세요. 특정한 Web Application Server에 따라 단순히 m.getMessageID() 해서는 엔진이 메시지 ID를 다시 생성해서 correlationID로 교체해버리는 경우가 있습니다.
간단한 코드인데 말야... 예전 bmt 때 correlationId 가 없어도 Sender 쓰레드로 응답이 정상적으로 올거라 생각하는 사람, 한 줄로 끝나는 메시지 selector 대신 queue browser 로 메시지를 다 뒤져서 꺼내오는 사람을 봤지 ㅋㅋ
rss client 를 하나 깔았는데 이거 정말 편한데... FeedDemon
ZDNet에 연재되고 있는 수퍼 개발자의 길이란 글을 읽어보았습니다. 개발자들에게 무언가 공감할 수 있는 글을 기존의 이름있는 자바 개발자로부터 기고를 받아 연재하는 것이네요. 저는 수퍼 개발자같은 건 꿈꾸지도 않아서인지 내용들이 그렇게 재미있지는 않지만 한 번 읽어봄이 좋을 듯 합니다.
나름 기고자들이 일하고 있는 영역에 대한 부분에서의 수퍼 개발자를 이야기하고 있습니다. 자바를 주로 이야기하다보니 항상 들어오던 친근한 이름들이 거론되었네요. 하지만 기고들의 말미에서는 본인들이 하고 있는 사업이나 프로젝트에 대한 내용도 포함되어 있어 왜 기고에 이것을 선전해야 하나라는 의구심도 생겼었습니다. A회사 소속인들의 기고면 A회사 프로젝트가 나오는 그런 것들이지요.
방도는 없습니다. 실천 의지와 기초에 기반을 둔 실력 쌓기, 그리고 뛰어난 커뮤니티 활동 등이 수퍼라는 이름을 달기 위한 과정이 아닐까 합니다. 또한 가정을 소홀히 할 수밖에 없을 지도 모르죠. 두 마리 토끼를 다 잡는다는 것은 국내에서 이희승씨같은 full time 오픈 소스 개발자 정도가 되면 할 수 있겠네요.
JBoss 시작한지 석달이 지났는데 HelloWorld, 즉 Echo EJB를 이제서야 작성해 보았습니다. 아~ 이 게으름!
여기서의 Test는 EJB Coding Style은 2.1로 그리고 deploy descriptor는 3.0으로 구성하여 EJB3 Container에 deploy했기 때문에 클라이언트에서는 context lookup시 remote interface가 바로 날아오는 특징을 가지고 있습니다.
<target name="init"> <!-- Create the time stamp --> <tstamp /> <!-- Create the build directory structure used by compile and copy the deployment descriptors into it--> <mkdir dir="${build.dir}" /> <mkdir dir="${build.dir}/META-INF" /> <copy todir="${build.dir}/META-INF"> <fileset dir="xml"> <include name="*.xml" /> <exclude name="build.xml" /> </fileset> </copy> </target>
<!-- Compile ejb classes into the build directory (jar preparation) --> <target name="compile.ejb"> <echo>compile.classpath</echo> <javac srcdir="${src.dir}" destdir="${build.dir}" classpathref="compile.classpath" /> </target>
<!-- Make a standard ejb jar file, including XML deployment descriptors --> <target name="jar.ejb" depends="compile.ejb"> <jar jarfile="${app.name}.jar" basedir="${build.dir}"></jar> </target>
Deploy는 jboss home 디렉토리 밑의 server/default로 테스트 서버를 잡고 복사하면 자동으로 디플로이되어지며 다음과 같은 메시지가 나오면 정상입니다.
17:45:59,781 INFO [JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.stateless.StatelessContainer 17:45:59,781 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=hello-ejb.jar,name=EchoEJB,service=EJB3 with dependencies: 17:45:59,789 INFO [EJBContainer] STARTED EJB: com.jboss.ejb.example.echo.EchoEJB ejbName: EchoEJB 17:45:59,803 INFO [EJB3Deployer] Deployed: file:/home/jboss/jboss-4.2.3.GA/server/default/deploy/hello-ejb.jar 17:51:25,201 INFO [STDOUT] EchoEJB() method 17:51:25,213 INFO [STDOUT] setSessionContext() method 17:51:25,217 INFO [STDOUT] ejbCreate() method 17:51:25,225 INFO [STDOUT] Call EJB!!