java Tip
±Û Á¦ ¸ñ
CMP 2.0 Generator for Weblogic8.1 & Websphere 5.0
ÀÛ ¼º ÀÚ
(admin@50001.com)
¾È³çÇϽʴϱî? À̹ø¿¡´Â ±ÞÇÏ°Ô ¸¸µé¾î³½ CMP Generator¸¦ ¼Ò°³ÇÕ´Ï´Ù.
óÀ½¿¡´Â OpenSource ÀÎ XDocletÀ» ÀÌ¿ëÇÏ¿© ¸¸µé¾î ³»·Á°í ÇßÀ¸³ª IBM Websphere¿¡ ´ëÇÑ
½ÇÁ¦ Áö¿øÀÌ ±×¸® ¸¹Áö ¾Ê¾Æ 󸮿¡ ´ëÇÑ °í½ÉÀ» Çß¾ú°í, XDocletÀÇ contributor ¶ÇÇÑ
websphereÀÇ xmiÆÄÀϵ鿡 ´ëÇÑ Ã³¸®°¡ ½±Áö ¾ÊÀ½À» newsgroup¿¡ ¿Ã¸°ÀûÀÌ ÀÖ¾ú½À´Ï´Ù.
ÇöÀç Á¦°¡ Çϰí ÀÖ´Â ÇÁ·ÎÁ§Æ®¿¡¼ EJB 2.0 CMP±â´ÉÀ» ÀÌ¿ëÇÏ¿© ó¸®Çϱâ·Î ±âº»È帧ÀÌ
ÀâÇôÀÖ½À´Ï´Ù.
ÀÏÀü¿¡ swing UI base·Î ¸¸µé¾ú´ø ÀûÀÌ ÀÖÀ¸³ª ±âÁ¸ÀÇ 1.1 spec¿¡ ¸ÂÃß¾îÁ® ÀÖ¾î¼ ±ÞÇϰÔ
³ª¸¶ À̹ø¿¡ 2.0 ±âÁØ¿¡ ¸Â´Â CMP Generator¸¦ ¸¸µé°Ô µÇ¾ú½À´Ï´Ù.
°£´ÜÇÏ°Ô ±â´É¼Ò°³¸¸ ÇÏ°í ¾ÆÆ¼Å¬À» ¸¶Ä¡·Á°í ÇÕ´Ï´Ù.
¢º Carouser CMP Generator overview
¿ì¼± ±âº»ÀûÀ¸·Î »ý¼ºÇس»¾ß ÇÏ´Â ÆÐÅÏÀ» ¸ÕÀú ¼³¸íÀ» µå·Á¾ß °Ú½À´Ï´Ù.
°¡Àå ¸ÕÀú EJB¸¦ µðÀÚÀÎÇϴµ¥ ÀÖ¾î¼ ±âº»ÀûÀÎ ÆÐÅÏÀÌ µé¾î°¡°Ô µÇ´Âµ¥ ¿©·¯ºÐµéÀÌ
Àß ¾Æ´Â ÆÐÅÏÀ¸·Î´Â facade°¡ ÀÖÀ» °Å¶ó°í º¾´Ï´Ù.
Network traffic callÀ» ÁÙÀ̱â À§ÇÔÀÌ ÀÖ´Ù´Â °Ç ÃæºÐÈ÷ ¾Æ½ÇÅ×°í..
°¡Àå ±âº»ÀûÀÎ EJB±¸Ãà¿¡ ´ëÇÑ ¾ÆÅ°ÅØÃı¸¼ºÀ» º¸°Ô µÇ¸é
Client Container ¢¸----¢º Web Container ¢¸----¢º EJB Container ¢¸----¢º EIS Server
¿©±â¼ Client Container´Â »ç¿ëÀÚÀÇ ºê¶ó¿ìÁ®¶ó ¾ÖÇø®ÄÉÀÌ¼Ç Å¬¶óÀÌ¾ðÆ®°¡ µÉ°ÍÀ̰í
Web Container´Â Servet/JSP ContainerÀÔ´Ï´Ù.
Serlvet/JSP Container´Â ±âº»ÀûÀÎ pattern framework¿¡ ÀÇÇÏ¿© Äڵ尡 µÇ¾îÁú ÅÍÀ̰í
°¢°¢ÀÇ ejb¿µ¿ª¿¡ À־ EJB Container¿¡ ÀÇÇÑ facade callÇüŰ¡ µÇ¾îÁú°ÍÀÌ
ºÐ¸íÇÕ´Ï´Ù.
Áï ¾ÕÂÊÀÇ SessionBeanÀÌ command patternµî¿¡ ÀÇÇÏ¿© business logic¿¡ ´ëÇÑ callºÎºÐÀ»
ÇÒ°ÍÀÔ´Ï´Ù. Data handling¿¡ ´ëÇÑ ºÎºÐÀº CMP ¿µ¿ª¿¡¼ ´ëºÎºÐ󸮰¡ µÇ¾îÁú °ÍÀ̸ç,
ÃßÈÄ Å×À̺íÀÌ ¹Ù²î°Ô µÈ´õ¶ó°í ±âº»ÀûÀÎ CRUD¿¡ ´ëÇÑ ºÎºÐÀº dependency¸¦ °¡Áø
CMPÀÇ ¸òÀ¸·Î µ¹¾Æ°¡°Ô µÇ¹Ç·Î generator¸¦ °¡Áö°í ÀÖ´Ù¸é ¾ÆÁÖ ½±°Ô À¯Áöº¸¼ö°¡
µÇ¾îÁú °ÍÀÔ´Ï´Ù.
¢º Carouser CMP Generator ±â´É¿ä¾à
¿¹¸¦ µé¾î oracleÀÇ scott°èÁ¤ÀÌ °¡Áö°í ÀÖ´Â table¿¡ EMPÅ×À̺íÀÌ Á¸ÀçÇÑ´Ù°í ÇßÀ»°æ¿ì
Generator°¡ ¸¸µé¾î³»´Â Ŭ·¡½º´Â Å©°Ô SessionBean, EntityBean, DAO, JSP ¹× compile
À» À§ÇÑ ant buildÀÎ build.properties, build.xml°ú jsp sampleÀ» ÀÌ¿ëÇÏ¿© Å×½ºÆ®ÇÒ¼ö ÀÖ´Â
jspÆÄÀϵîÀÌ ÀÖ½À´Ï´Ù.
Å×½ºÆ® Server : IBM Webshpere 5.0 Enterprise, BEA Weblogic 8.1
WeblogicÀÇ °æ¿ì´Â ¾ÆÁ÷ ¿Ïº®È÷ Å×½ºÆ®ÇÏÁö ¸øÇß½À´Ï´Ù. WebsphereÀÇ °æ¿ì´Â PK°¡
Á¸ÀçÇÏ¸é ¿Ïº®È÷ µ¹¾Æ°©´Ï´Ù.
EMP¶ó´Â Å×À̺íÀ» °¡Á¤ÇßÀ» °æ¿ì
./EmpManagerHome.java - Facade home class
./EmpManager.java - Facade remote class
./EmpManagerEJB.java - Facade EJB class
./EmpInfo.java - Database table model class
./EmpHome.java - CMP2.0 home class
./Emp.java - CMP2.0 remote class
./EmpEJB.java - CMP2.0 abstract class
./EmpPK.java - CMP2.0 primary class
./EmpDAO.java - Data Access Object
./jsp_sample/empTest.jsp - EJB Test jsp sample
./build/build.properties - build properties for ANT
./xml/ejb-jar.xml - standard ejb-jar xml
./xml/weblogic-ejb-jar.xml - weblogic binding xml
./xml/weblogic-cmp-rdbms-jar.xml - weblogic cmp mapping xml
./xml/ibm-ejb-jar-bnd.xmi - ibm binding xmi
./xml/ibm-ejb-jar-ext.xmi - ibm extension xmi
./build.xml - EJB build for ANT
À§ÀÇ »çÇ×À» ±âº»ÀûÀ¸·Î ¸¸µé°Ô µÇ±¸¿ä, Websphere¿ëÀ¸·Î ¸¸µé°ÍÀÎÁö Weblogic¿ëÀ¸·Î
¸¸µé°ÍÀÎÁö´Â ½ÇÁ¦ ÇÁ·Î±×·¥ ¼öÇ൵Áß¿¡ ¹°¾îº¸°Ô µÇ¸ç, Äָܼðµå·Î °³¹ßÇÑ
ÀÌ ¹öÁ¯Àº weblogic console installation modeÇüÅ·ΠÀÛ¼ºµÇ¾ú½À´Ï´Ù.
¢º Using CMP Generator
±âº»ÀûÀÎ »ç¿ë¹æ¹ýÀº 4°¡Áö ÀÔ´Ï´Ù.
+-------------------------------------------------------------+
| Welcome to Carouser CMP Generator |
| Choose option flag. Enjoy! |
+-------------------------------------------------------------+
1. Read the properties file & Generated CMP jar files(All tables)
2. Read the properties file & Generated CMP jar file(Selected one)
3. Console mode database setting & Generated CMP jar files(All tables)
4. Console mode database setting & Generated CMP jar file(selected one)
99. Terminate this application
Áï propertiesÆÄÀÏÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ý°ú console¿¡¼ µ¥ÀÌÅͺ£À̽ºÁ¤º¸¸¦ Á÷Á¢ÀÔ·ÂÇÏ´Â
¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
µ¥ÀÌÅͺ£À̽º ¼³Á¤À» ÀÌ¿ëÇÏ¿© table schema¸¦ ÀоÈÄ pk¿¡ ´ëÇÑ constraintÁ¤º¸¸¦ ÀÌ¿ëÇÏ¿©
Ŭ·¡½º¸¦ ÃßÃâÇØ³»°Ô µË´Ï´Ù.
µ¥ÀÌÅͺ£À̽º Á¤º¸´Â mysql ÀÇ table displayÇüÅ·ΠÃâ·ÂµÇ°Ô µÇ¸é
½ÇÇàÇÏ´Â ¹æ¹ýÀº ¸ÕÀú ¾ÐÃàÀ» ǬÈÄ classes directoryÀÇ database.properties¸¦ ÀûÀýÇϰÔ
¹Ù²ß´Ï´Ù.
ÄÄÆÄÀÏÇÏ·Á¸é
$INSTALLED_DIR> ant compile
½ÇÇàÀº antÀÇ run targetÀ» ÀÌ¿ëÇØµµ µÇ³ª ȸéÀÌ Á¶±Ý ±úÁö°Ô µÇ¹Ç·Î run.cmdÀÇ À©µµ¿ì ÆÄÀÏÀ»
¸¸µé¾î³ù½À´Ï´Ù.
$INSTALLED_DIR> run
À» ÀÔ·ÂÇÏ°Ô µÇ¸é À§ÀÇ ¸Þ´º°¡ ³ªÅ¸³ª°Ô µÇ¸ç ÀÚµ¿À¸·Î ¸Þ´º¸¦ µû¶ó ¼³Á¤ÀÌ À̵¿ÇÏ°Ô µÇ¾îÀÖ½À´Ï´Ù.
¢º Conclusion
ÇöÀç oracleÀÇ DatabaseMetaDataŬ·¡½ºÀÇ primary key¸¦ ¾ò¾î³»´Â ºÎºÐ¿¡¼ PK¿¡ ´ëÇÑ naming sort°¡
ÀÌ·ç¾îÁ® PK Class¸¦ ¸¸µé¶§ ¼ø¼ÀÇ ¿µÇâÀ» ¹Þ´Â °ü°è·Î query¸¦ ÀÌ¿ëÇÏ¿© pk¾ò¾î³ÂÀ¸¹Ç·Î
°á±¹ Áö±Ý ¹öÁ¯Àº oracle dependentÇÑ °á°ú¸¦ º¸À̰í ÀÖÀ¸³ª, ±× ºÎºÐÀº Á÷Á¢ metadata¼öÁ¤À» ÅëÇÏ¿©
Á÷Á¢ ¹Ù²Ù¼Åµµ ¹«¹æÇÕ´Ï´Ù.
±×¸®°í ÀÌ ¼Ò½º´Â ¸· º¯°æÇÏ¿© ¾²¼Åµµ »ó°ü¾ø½À´Ï´Ù. ´ë½Å ÁÖ¼®Àº ¾ø½À´Ï´Ù.
½Ã°£ÀÌ ¾øÀÌ ³Ê¹« ¸·¹«°¡³»·Î Â¥³»¾î¼ ¼öÁ¤À» °¡ÇØ¾ß ÇÒ ºÎºÐÀÌ Á¶±Ý ¸¹½À´Ï´Ù.
¸¸¾à ÀÌ ¼Ò½º¸¦ ¼öÁ¤ÇÏ¿© Àç¹èÆ÷ÇÒ °èȹÀÌ ÀÖÀ¸½Ã´Ù¸é ¼Ò½ººÎºÐ¿¡ ÀúÀÚÀÇ À̸§À» ¸ÕÀú
¹àÈ÷½ÅÈÄ ´Ù½Ã ¼öÁ¤ÀÚ·Î ¹èÆ÷ÇØÁÖ½Ã¸é °í¸¿½À´Ï´Ù.
Áß°£Áß°£¿¡ exception󸮸¦ Á¦´ë·Î ÇÏÁö ¸øÇÑ ºÎºÐÀÌ ¸¹½À´Ï´Ù. Refactoringµµ ¸¹ÀÌ ÇØ¾ßÇÕ´Ï´Ù.
¿åÇÏÁö ¸»¾ÆÁÖ¼¼¿ä. ¸¸µé±â ³Ê¹« Â¥Áõ³µ½À´Ï´Ù..¿¡±Ã.
Ãâó : http://www.javapattern.info
+ÃßõÇϱâ!