| Enterprise Java Technologies Tech Tips¿¡ ¿À½Å ¿©·¯ºÐÀ»
ȯ¿µÇÕ´Ï´Ù. Java 2 Platform, Enterprise Edition (J2EE)¿¡ ±â¹ÝÇÑ
enterprise Java technologies ¿Í APIsÀÇ »ç¿ë¿¡ °üÇÑ ÃֽŠÁ¤º¸¸¦ ¾ò¾î
°¡½Ã±â ¹Ù¶ø´Ï´Ù. ÀÌ ±Û¿¡¼´Â Java 2 Java 2, Enterprise Edition,
v 1.4 ¸¦ »ç¿ëÇÕ´Ï´Ù. ´Ù¿î·Îµå
À̹ø È£¿¡¼´Â,
EJB 2.1·Î ¸Þ½ÃÁö ±¸µ¿ ºó ÀÌ¿ëÇϱâ
JAXR (JAVA API FOR XML REGISTRIES)
À» ´Ù·ç°Ô µË´Ï´Ù.
ÀúÀÚ Robert Eckstein
EJB 2.1·Î ¸Þ½ÃÁö ±¸µ¿ ºó ÀÌ¿ëÇϱâ
EJB(Enterprise Java Beans) ±â¼úÀÇ ±¸¼º¿ä¼Ò¿¡´Â ¼¼¼Ç ºó(session bean), ¿£Æ¼Æ¼ ºó(entity bean), ¸Þ½ÃÁö ±¸µ¿ ºó(message-driven bean, MDB) µîÀÇ ¼¼ Á¾·ù°¡ ÀÖ´Ù. »óÅÂÀ¯Áö(stateful)¿Í ºñ»óÅÂÀ¯Áö(stateless)°¡ ¸ðµÎ °¡´ÉÇÑ ¼¼¼Ç ºóÀº ÈçÈ÷ ºñÁî´Ï½º ÇÁ·Î¼¼½º¸¦ ³ªÅ¸³»´Âµ¥, »óÅÂÀ¯Áö ¼¼¼Ç ºóÀº ÀϹÝÀûÀ¸·Î Çѹø¿¡ ÇÑ Å¬¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ¾×¼¼½ºµÇÁö¸¸, »óÅ À¯Áö¿Í ºñ»óÅ À¯Áö ¼¼¼Ç ºóÀº ¸ðµÎ µ¿±â ¹æ½ÄÀ¸·Î ¾×¼¼½ºµÇ¸ç ºñ¿µ¼ÓÀûÀÌ´Ù. ÀÌ¿Í ´ëÁ¶ÀûÀ¸·Î ¿£Æ¼Æ¼ ºóÀº ¿µ¼ÓÀû ½ºÅ丮Áö¿¡ ÀúÀåµÇ´Â ºñÁî´Ï½º µ¥ÀÌÅ͸¦ ³ªÅ¸³½´Ù. MDB´Â J2EE ¾ÖÇø®ÄÉÀ̼ÇÀÌ JMS(Java Message Service) API¸¦ »ç¿ëÇÏ¿© ºó°ú Ŭ¶óÀÌ¾ðÆ®°£ÀÇ ¸Þ½ÃÁö¸¦ ºñµ¿±âÀûÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù. MDB´Â ÃֽŠÇüÅÂÀÇ EJB·Î, EJB2.0°ú ÇÔ²² µµÀԵǾú´Âµ¥, MDBÀÌ µµÀÔµÇ¸é¼ J2EE ¾ÖÇø®ÄÉÀ̼ÇÀº JMS(Java Message Service) API¸¦ »ç¿ëÇÏ¿© ºó°ú Ŭ¶óÀÌ¾ðÆ®°£ÀÇ ¸Þ½ÃÁö¸¦ ºñµ¿±âÀûÀ¸·Î ó¸®ÇÒ ¼ö ÀÖ°Ô µÇ¾ú´Ù.
MDB´Â ¿©·¯ ¸é¿¡¼ »óÅÂÀ¯Áö ¼¼¼Ç ºó°ú ºñ½ÁÇÏ´Ù. EJB ½ºÆåÀº »óÅÂÀ¯Áö ¼¼¼Ç ºó°ú À¯»çÇÑ MDBÀÇ ÀϺΠƯ¼ºÀ» °Á¶ÇÏ´Â ¸î °¡Áö ¿¹¸¦ º¸¿©ÁÖ°í ÀÖ´Ù.
-
¸Þ½ÃÁö ±¸µ¿ ºóÀÇ ÀνºÅϽº´Â ƯÁ¤ Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇÑ µ¥ÀÌÅÍ ¶Ç´Â ´ëÈ »óŸ¦ À¯ÁöÇÏÁö ¾Ê´Â´Ù.
-
EJB ÄÁÅ×À̳ʴ ¾î¶² ¸Þ½ÃÁö ±¸µ¿ ºó ÀνºÅϽº¿¡µµ ¸Þ½ÃÁö¸¦ ÇÒ´çÇÒ ¼ö ÀÖ¾î ¸Þ½ÃÁö ±¸µ¿ ºóÀÇ ÀνºÅϽº´Â ¸ðµÎ µ¿µîÇÏ´Ù.
-
ÄÁÅ×À̳ʴ À̵é ÀνºÅϽº¸¦ Ç®¸µÇÏ¿© ¸Þ½ÃÁö ½ºÆ®¸²ÀÌ º´·Ä 󸮵ǵµ·Ï ÇÒ ¼ö ÀÖ´Ù.
-
ÇϳªÀÇ ¸Þ½ÃÁö ±¸µ¿ ºóÀÌ º¹¼ö Ŭ¶óÀ̾ðÆ®ÀÇ ¸Þ½ÃÁö¸¦ ó¸®ÇÒ ¼ö ÀÖ´Ù.
µÎ °¡Áö ºó »çÀÌÀÇ °¡Àå ¶Ñ·ÇÇÑ Â÷ÀÌ´Â MDB´Â µ¿±â ¸Þ¼Òµå È£Ãâ(°¡·É À̺¥Æ®) ´ë½Å ºñµ¿±â JMS ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÑ´Ù´Â Á¡ÀÌ´Ù. ¼¼¼Ç ºó°ú ¿£Æ¼Æ¼ ºóÀº JMS ¸Þ½ÃÁö¸¦ Àü¼ÛÇϰí À̸¦ µ¿±âÀûÀ¸·Î ¼ö½ÅÇÒ ¼ö ÀÖÁö¸¸ ºñµ¿±âÀûÀ¸·Î ¼ö½ÅÇÒ ¼ö´Â ¾ø´Ù. ÀÌµé ºñµ¿±â ¸Þ½ÃÁö´Â ¾ÖÇø®ÄÉÀÌ¼Ç Å¬¶óÀ̾ðÆ®, ¶Ç ´Ù¸¥ ¿£ÅÍÇÁ¶óÀÌÁî ºó, À¥ ±¸¼º¿ä¼Ò µî ¾î¶² J2EE·Îµç Àü¼ÛÀÌ °¡´ÉÇÏ´Ù. EJB 2.0ÀÌ µµÀÔµÇ¸é¼ MDB¸¦ ±¸ÇöÇϱⰡ °£´ÜÇØÁ³´Ù. MDB´Â JMS ¸Þ½ÃÁö¿¡¸¸ ¹ÝÀÀÇϱ⠶§¹®¿¡ ´Ù¸¥ Á¾·ùÀÇ ¿£ÅÍÇÁ¶óÀÌÁî ºó¿¡¼ ±â´ëµÇ´Â °Í°ú °°Àº Ŭ¶óÀÌ¾ðÆ® ÀÎÅÍÆäÀ̽º(client interface)³ª Ȩ ÀÎÅÍÆäÀ̽º(home interface)°¡ ÇÊ¿äÄ¡ ¾Ê´Ù. MDB´Â JMS ÀÎÅÍÆäÀ̽º javax.jms.MessageListener¿Í javax.ejb.MessageDrivenBean ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â ÇϳªÀÇ Å¬·¡½º¸¸À» ¿ä±¸ÇÑ´Ù. ´ÙÀ½Àº MDBÀÇ °£´ÜÇÑ ¿¹Á¦ÀÌ´Ù.
import javax.ejb.*;
import javax.jms.*;
public class MyMessageBean implements MessageDrivenBean,
MessageListener
{
public void ejbCreate() throws CreateException {...}
public void ejbRemove() { ... }
public void setMessageDrivenContext(
MessageDrivenContext ctx) { ... }
public void onMessage(Message msg) { ... }
}
Ŭ¶óÀÌ¾ðÆ® ±¸¼º¿ä¼Ò´Â MDB¸¦ ã¾Æ¼ ±×°÷¿¡¼ Á÷Á¢ ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¾Ê´Â´Ù. ´ë½Å Ŭ¶óÀÌ¾ðÆ®´Â MDB Ŭ·¡½º°¡ MessageListenerÀÎ ¸Þ½ÃÁö ¼ö½ÅÁö¿¡ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÔÀ¸·Î½á JMS¸¦ ÅëÇØ MDB¿¡ ¾×¼¼½ºÇÕ´Ï´Ù. ´ÙÀ½Àº J2EE 1.4 TutorialÀÇ MDB ¿¹Á¦¸¦ ±âÃÊ·Î ÇÑ ¿¹Á¦ÀÌ´Ù. MDB¿¡ ¸Þ½ÃÁö¸¦ Àü¼ÛÇϱâ À§ÇØ Å¬¶óÀÌ¾ðÆ®´Â ¸ÕÀú Ä¿³Ø¼Ç ÆÑÅ丮 (connection factory)¿Í Å¥(queue)¸¦ ¸¸µç´Ù.
connectionFactory =
(ConnectionFactory) jndiContext.lookup(
"java:comp/env/jms/MyConnectionFactory");
destination =
(Queue) jndiContext.lookup("java:comp/env/jms/QueueName");
´ÙÀ½À¸·Î, Ŭ¶óÀÌ¾ðÆ®´Â Å¥ Ä¿³Ø¼Ç, ¼¼¼Ç, ¼Û½ÅÀÚ¸¦ »ý¼ºÇÑ´Ù.
connection = connectionFactory.createConnection();
session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
messageProducer = session.createProducer(destination);
message = session.createTextMessage();
¸¶Áö¸·À¸·Î, Ŭ¶óÀÌ¾ðÆ®°¡ Å¥¿¡ ¸Þ½ÃÁö¸¦ º¸³½´Ù.
for (int i = 0; i < NUM_MSGS; i++) {
message.setText("This is message " + (i + 1));
System.out.println("Sending message: " +
message.gettext());
messageProducer.send(message);
}
Å¥°¡ ¸Þ½ÃÁö¸¦ ¼ö½ÅÇÒ °æ¿ì EJB ÄÁÅ×À̳ʴ MDBÀÇ onMessage() ¸Þ¼Òµå¸¦ È£ÃâÇϴµ¥, ÀÌ ¸Þ¼Òµå´Â ¸Þ½ÃÁöÀÇ ÇÁ·Î¼¼½ÌÀ» ó¸®ÇÏ´Â ºñÁî´Ï½º ·ÎÁ÷À» Æ÷ÇÔÇϰí ÀÖ´Ù. ¸Þ½ÃÁö¸¦ ÆÄ½ÌÇϰí ÇÊ¿äÇÑ ºñÁî´Ï½º ·ÎÁ÷À» ¼öÇàÇÏ´Â °ÍÀº MDBÀÇ Ã¥ÀÓÀÌ´Ù. MyMessageBeanÀÇ °æ¿ì, onMessage() ¸Þ¼Òµå´Â µé¾î¿À´Â ¸Þ½ÃÁö¸¦ TextMessage·Î ij½ºÆ®Çϰí ÅØ½ºÆ®¸¦ ·Î±× ÆÄÀÏ¿¡ º¸³¾ ¼ö ÀÖ¾ú´Ù.
public void onMessage(Message inMessage) {
TextMessage msg = null;
try {
if (inMessage instanceof TextMessage) {
msg = (TextMessage) inMessage;
logger.info("MESSAGE BEAN: Message received: " +
msg.getText());
} else {
logger.warning("Message of wrong type: " +
inMessage.getClass().getName());
}
} catch (JMSException e) {
e.printStackTrace();
} catch (Throwable te) {
te.printStackTrace();
}
}
EJB 2.1¿¡¼ »õ·Î¿öÁø ³»¿ë
EJB 2.1À» µµÀÔÇÏ¸é ´õ ÀÌ»ó JMS »ç¿ë¿¡ ±¸¾Ö¸¦ ¹ÞÁö ¾Ê¾Æµµ µÇ´Âµ¥, MDB¸¦ À¥ ¼ºñ½º¿¡
¿¬°áÇϰíÀÚ ÇÏ´Â ÇÁ·Î±×·¡¸Ó¿¡°Ô´Â ÀÌ·± º¯È°¡ ¸Å¿ì Áß¿äÇÏ´Ù. ÀÌÁ¦´Â ÀûÀýÇÑ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÔÀ¸·Î½á
MDB°¡ ´Ù¸¥ Á¾·ùÀÇ ¸Þ½ÃÁö¸¦ ûÃëÇϵµ·Ï ÇÒ ¼ö ÀÖ´Ù. ÀÌ ÀÎÅÍÆäÀ̽º´Â Åë»óÀûÀ¸·Î J2EE Ä¿³ØÅÍ
¾ÆÅ°ÅØÃ³¸¦ µû¸£´Â ¡®Ä¿³ØÅÍ(connector)¡¯¸¦ »ç¿ëÇÏ¿© Ãß°¡µÈ´Ù. J2EE Ä¿³ØÅÍ ¾ÆÅ°ÅØÃ³ 1.5´Â
Ưº°È÷ MDB¿¡ ¸ÂÃß¾îÁø ¸Þ½Ã¡ °è¾àÀ» Á¤ÀÇÇÑ´Ù. (2004³â 12¿ù 15ÀÏÀÚ Å×Å©ÆÁ J2EE
Ä¿³ØÅÍ ¾ÆÅ°ÅØÃ³ 1.5 ÂüÁ¶).
ºñµ¿±â Ä¿³ØÅ͸¦ ±â¹ÝÀ¸·Î ÇÑ MDB´Â Ç¥ÁØ javax.ejb.MessageDrivenBean ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϸç, ¾Æ¿ï·¯ Enterprise Information System ƯÀ¯ÀÇ Ä¿³ØÅÍ ÀÚü¿¡ ÀÇÇØ Á¤ÀǵǴ ƯÁ¤ÇÑ ¸Þ½Ã¡ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÑ´Ù.
À¥ ¼ºñ½º Ä¿³ØÅÍ¿Í °ü°èµÈ °£´ÜÇÑ ¿¹¸¦ »ìÆìº¸ÀÚ. Ä¿³ØÅÍ ¼ÒÇÁÆ®¿þ¾î´Â RAR(Resource Archive) ÆÄÀÏ¿¡ »óÁÖÇϰí, ÀÌ RAR´Â ¶ÇÇÑ °³¹ßÀÚ°¡ À¥ ¼ºñ½º MDB¸¦ »ý¼ºÇϱâ À§ÇØ »ç¿ëÇÏ´Â ¸Þ½Ã¡ ÀÎÅÍÆäÀ̽º¿Í ¸Þ½Ã¡ API¸¦ Á¤ÀÇÇÑ´Ù. ´ÙÀ½Àº EJB 2.1 MDB°¡ ¹Ýµå½Ã ±¸ÇöÇØ¾ß ÇÏ´Â °¡Á¤ÀûÀÎ ÀÎÅÍÆäÀ̽ºÀÌ´Ù.
package com.someone.web;
public interface WebServiceListener {
public void receiveWebServiceMessage(
XMLDocument message);
}
ÀÌ °æ¿ì MDB´Â javax.ejb.MessageDrivenBean ÀÎÅÍÆäÀ̽º¿Í WebServiceListener ÀÎÅÍÆäÀ̽º¸¦ ¸ðµÎ ±¸ÇöÇÏ°Ô µÈ´Ù. ´ÙÀ½ ÄÚµå´Â WebServiceListener ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ¿© XML ¸Þ½ÃÁö¸¦ ó¸®ÇÏ´Â MDB¸¦ º¸¿©ÁØ´Ù.
package com.someone.web;
public class WebServiceBean implements
javax.ejb.MessageDrivenBean,
com.someone.web.WebServiceListener
{
MessageDrivenContext ejbContext;
public void setMessageDrivenContext(
MessgeDrivenContext context){
ejbContext = context;
}
public void ejbCreate()
{
// Code omitted
}
public void receiveWebServiceMessage(
XMLDocument message)
{
// Do something with message
}
public void ejbRemove(){
// code omitted
}
}
»ç¿ëµÇ´Â ¸Þ½Ã¡ ÀÎÅÍÆäÀ̽º°¡ ¸®ÅÏ Å¸ÀÔÀ» Á¤ÀÇÇÏ´Â ¸Þ¼Òµå¸¦ ¼±¾ðÇÒ ¼ö ÀÖ´Ù´Â µ¥ À¯ÀÇÇÏ±æ ¹Ù¶õ´Ù. À̹ø¿¡µµ Ä¿³ØÅͰ¡ ¹Ýµå½Ã °³ÀÔÇÏ¿© ȸ½Å ¸Þ½ÃÁö¸¦ ´Ù½Ã ¼Û½ÅÀÚ¿¡°Ô Áß°èÇØ¾ß ÇÑ´Ù.
¹èÄ¡ ¼¼úÀÚ º¯°æ
EJB 2.1¿¡¼´Â MDB¸¦ À§ÇÑ ¹èÄ¡ ¼¼úÀÚ(deployment descriptor)°¡ »ó´ç¼ö º¯°æµÇ¾ú´Ù. À̵éÀº ´õ ÀÌ»ó JMS¿¡¸¸ ÀüÀûÀ¸·Î ÀÇÁ¸ÇÏÁö ¾Ê±â ¶§¹®¿¡ EJB 2.1¿¡¼´Â <message-selector>¿Í <acknowledge-mode>¿¤¸®¸ÕÆ®°¡ ±³Ã¼µÇ¾ú½À´Ï´Ù. ÀÌ¿Í ´õºÒ¾î, MDBÀÇ ´Ù¾çÇÑ ¼Ó¼ºÀ» ¿°ÅÇϱâ À§ÇØ message-agnostic ¿¤¸®¸ÕÆ®ÀÎ <activation-config>°¡ µµÀԵǾú´Ù. <activation-config>ÀÇ ¼Ó¼ºµéÀº ¸Þ½ÃÁö ±¸µ¿ ºóÀÌ ¹èÄ¡µÉ ¶§ Ä¿³ØÅÍ¿¡ Àü´ÞµÈ´Ù.
´ÙÀ½Àº ¸î °¡Áö <activation-config> ¼Ó¼º ¼³Á¤ÀÇ
¿¹ÀÌ´Ù.
<activation-config>
<activation-property>
<activation-config-property-name>messageSelector
</activation-config-property-name>
<activation-config-property-value>Priority = 'Urgent'
</activation-config-property-value>
<activation-property>
</activation-config>
EJB 2.1Àº JMS ±â¹Ý MDB¿¡ ´ëÇØ ´ÙÀ½ 4°³ÀÇ °íÁ¤ ¼Ó¼ºÀ» Á¤ÀÇÇϸç, À̵éÀº ÀÌÀüÀÇ EJB 2.1 ¼Ó¼ºÀ» ´ëüÇÑ´Ù.
acknowledgeMode
messageSelector
destinationType
subscriptionDurablity
EJB 2.1Àº ¶ÇÇÑ ´ÙÀ½°ú °°ÀÌ µÎ °³ÀÇ »õ·Î¿î ¿¤¸®¸ÕÆ®, <messaging-type>°ú <message-destination-type>À»
Ãß°¡ÇÑ´Ù.
<messaging-type>javax.jms.MessageListener
</messaging-type>
<message-destination-type>
javax.jms.Queue
</message-destination-type>
<messaging-type> ¿¤¸®¸ÕÆ®´Â fully-qualified ÀÎÅÍÆäÀ̽º¸íÀ» ÁöÁ¤ÇÔÀ¸·Î½á ¾î¶²
¸Þ½ÃÁö ŸÀÔÀ» »ç¿ëÇÏ°Ô µÉÁö¸¦ ³ªÅ¸³½´Ù. ÀÎÅÍÆäÀ̽º¸íÀÌ ÁÖ¾îÁöÁö ¾ÊÀ» °æ¿ì ÄÁÅ×À̳ʴ ±âº»°ªÀ¸·Î
javax.jms.MessageListener·Î Á¤ÇØÁø´Ù. <message-destination-type>
¿¤¸®¸ÕÆ®´Â ºóÀÌ ¸Þ½ÃÁö¸¦ ¹Þ°Ô µÉ ¼ö½ÅÁöÀÇ Å¸ÀÔÀ» ³ªÅ¸³»´Â fully-qualified Ŭ·¡½º¸¦
ÁöÁ¤ÇÑ´Ù. JMSÀÇ °æ¿ì, Çã¿ëµÈ °ªÀº javax.jms.Queue ¿Í javax.jms.TopicÀÌ´Ù.
¸Þ½ÃÁö ¸µÅ©
¾î¶² ŸÀÔÀÇ EJBµµ ¸Þ½ÃÁö¸¦ Àü¼ÛÇÒ ¼ö ÀÖ´Â MDB ¼ö½ÅÁö¸¦ ¸í½ÃÇϱâ À§ÇØ ¹èÄ¡ ¼¼úÀÚ¿¡ ¸Þ½ÃÁö
¸µÅ© ±â´ÉÀÌ Ãß°¡µÇ¾ú´Ù. ejb-refs¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é Àü¼ÛÇÏ´Â ºó¿¡
´ëÇÑ ¹èÄ¡ ¼¼úÀÚÀÇ º¯°æ¿¡ Àͼ÷ÇÒ °ÍÀÌ´Ù.
<session>
<ejb-name>SendingEJB</ejb-name>
<resource-ref>
<res-ref-name>jms/MyFactory</res-ref-name>
<res-type>javax.jms.MyConnectionFactory</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<message-destination-ref>
<message-destination-ref-name>
jms/MyDestination
</message-destination-ref-name>
<message-destination-type>
javax.jms.Topic
</message-destination-type>
<message-destination-usage>
Produces
</message-destination-usage>
<message-destination-link>
MyDestinationLink
</message-destination-link>
</message-destination-ref>
</session>
¼ö½ÅÇÏ´Â MDBÀÇ °æ¿ì, ¹èÄ¡ ¼¼úÀÚ Á¤º¸¿¡ ´ÙÀ½ÀÌ Æ÷ÇԵǾî¾ß ÇÑ´Ù.
<message-driven>
<ejb-name>ReceivingEJB</ejb-name>
<messaging-type>
javax.jms.MessageListener
</messaging-type>
<transaction-type>Bean</transaction-type>
<message-destination-type>
javax.jms.Topic
</message-destination-type>
<message-destination-link>
MyDestinationLink
</message-destination-link>
</message-driven>
¼Û¼ö½Å ºóÀ» ¸µÅ©Çϱâ À§ÇØ, ¾î¼Àºí¸® ¼¼úÀÚ¿¡ ´ÙÀ½ÀÌ Ç¥½ÃµÇ¾î¾ß ÇÑ´Ù.
<assembly-descriptor>
<message-destination>
<message-destination-name>
MyDestinationLink
</message-destination-name>
</message-destination>
</assembly-descriptor>
¸Þ½ÃÁö ±¸µ¿ ºó¿¡ °üÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀ» º¸·Á¸é J2EE
1.4 TutorialÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.
JAXR (JAVA API FOR XML REGISTRIES)
JAXR(Java API for XML Registries)Àº ÀÎÅͳÝÀ» ÅëÇØ Ç¥ÁØ ºñÁî´Ï½º ·¹Áö½ºÆ®¸®¿¡
¾×¼¼½ºÇÒ ¼ö ÀÖ´Â Æí¸®ÇÑ ¹æ¹ýÀ» Á¦°øÇÑ´Ù. ºñÁî´Ï½º ·¹Áö½ºÆ®¸®¿¡´Â ±â¾÷ÀÌ ÀáÀç ±â¾÷ ÆÄÆ®³Ê°¡ Á¦°øÇÏ´Â
¼ºñ½º¸¦ °Ë»öÇÏ°í »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â Á¤º¸°¡ ´ã°Ü ÀÖ´Ù. ÀϹÝÀûÀ¸·Î, ±â¾÷Àº ·¹Áö½ºÆ®¸®·Î µî·ÏÀ»
Çϰųª »óÈ£ÀÛ¿ëÇÒ ¸¸ÇÑ ´Ù¸¥ ±â¾÷À» °Ë»öÇϱâ À§ÇØ ·¹Áö½ºÆ®¸®¸¦ ÀÌ¿ëÇÑ´Ù. Java
Web Services Developer Pack 1.5¿¡¼ Á¦°øÇϰí J2EE 1.4 Æ©Å丮¾ó¿¡µµ
±â¼úµÇ¾î ÀÖ´Â °£´ÜÇÑ JAXR ¿¹Á¦¿¡ ±âÃÊÇÑ ÀÌ Å×Å©ÆÁÀº Àڹ٠Ŭ¶óÀÌ¾ðÆ® ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¾î¶»°Ô JAXR
API¸¦ ÀÌ¿ëÇÏ¿© ÀÎÅÍ³Ý »óÀÇ ºñÁî´Ï½º ·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù.
ºñÁî´Ï½º ·¹Áö½ºÆ®¸®´Â ¿Ïº®ÇÑ Àü¿ë XML ·¹Áö½ºÆ®¸®·Î, µ¿Àû ¹× ¼Ò°áÇÕ B2B »óÈ£ÀÛ¿ëÀ» °¡´ÉÄÉ
ÇÏ´Â Á߸³ÀûÀÎ Á¦3ÀÚ ÀÎÇÁ¶óÀÌ´Ù. ÀÌ »óÈ£ÀÛ¿ëµéÀº ÀϹÝÀûÀ¸·Î ´ÙÀ½ µÎ °¡Áö Ç¥ÁØ Áß Çϳª¸¦ µû¸¥´Ù.
-
OASIS(Organization for the Advancement of Structured Information Standards)¿Í U.N./CEFACT(United Nations Centre for the Facilitation of Procedures and Practices in Administration, Commerce and Transport)°¡ ÈÄ¿øÇÏ´Â ebXML ·¹Áö½ºÆ®¸® ¹× ¸®Æ÷ÁöÅ丮 Ç¥ÁØ
-
º¥´õ ÄÁ¼Ò½Ã¾ö¿¡¼ °³¹ßÁßÀÎ UDDI(Universal Description, Discovery, and Integration) ÇÁ·ÎÁ§Æ®
·¹Áö½ºÆ®¸® Á¦°øÀÚ´Â À̵é Ç¥ÁØ Áß ÇÑ °¡Áö¸¦ ÁؼöÇÏ´Â ºñÁî´Ï½º ·¹Áö½ºÆ®¸®ÀÇ ±¸ÇöÀ» Á¦°øÇÏ´Â ¿£Æ¼Æ¼ÀÌ´Ù.
JAXR ¾ÆÅ°ÅØÃ³
JAXRÀº B2B »óÈ£ÀÛ¿ëÀÇ ¾î´À ÂÊ¿¡¼µµ »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç, JAXR API´Â ´ÙÀ½ µÎ °³ÀÇ
¿£Æ¼Æ¼·Î ÀÌ·ç¾îÁø´Ù.
- JAXR Ŭ¶óÀ̾ðÆ®. ÀÌ´Â JAXR Á¦°øÀÚ¸¦ ÅëÇØ ºñÁî´Ï½º ·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½ºÇϱâ À§ÇØ JAXR API¸¦ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ® ¾ÖÇø®ÄÉÀ̼ÇÀÌ´Ù.
- JAXR Á¦°øÀÚ. ÀÌ´Â °øÅëÀÇ ½ºÆåÀ» ±â¹ÝÀ¸·Î ÇÏ´Â Çϳª ÀÌ»óÀÇ ·¹Áö½ºÆ®¸® Á¦°øÀÚ¿¡ ´ëÇÑ ¾×¼¼½º¸¦ Á¦°øÇÏ´Â JAXR APIÀÇ ¼¹ö
Ãø ±¸ÇöÀÌ´Ù.
JAXR Ŭ¶óÀÌ¾ðÆ®´Â JAXR API ³»ÀÇ Æ¯¼ö ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ¿© JAXR Á¦°øÀÚ¿¡ ¾×¼¼½ºÇϰí, JAXR Á¦°øÀÚ´Â ·¹Áö½ºÆ®¸®¿Í Åë½ÅÇϰÔ
µÈ´Ù.
Java Web Services Developer Pack 1.5¿¡¼ Á¦°øÇÏ´Â ÃÖ½ÅÀÇ JAXR
·¹ÆÛ·±½º ±¸Çö(JAXR 1.0.7)¿¡´Â ebXML°¡ ¾Æ´Ñ UDDI ·¹Áö½ºÆ®¸®¸¸À» À§ÇÑ JAXR Á¦°øÀÚ°¡
Æ÷ÇԵǾî ÀÖ´Ù´Â Á¡¿¡ À¯ÀÇÇϱ⠹ٶõ´Ù. UDDI¿¡ °üÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº OASIS
UDDI¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.
JAXR »ç¾ç¿¡ µû¸£¸é Á¦°øÀÚ´Â ¹Ýµå½Ã µÎ °³ÀÇ ÆÐŰÁö·Î Ű ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇϵµ·Ï µÇ¾î ÀÖ´Ù.
-
javax.xml.registry: ÀÌ´Â API ÀÎÅÍÆäÀ̽º¿Í ·¹Áö½ºÆ®¸®
¾×¼¼½º ÀÎÅÍÆäÀ̽º¸¦ Á¤ÀÇÇϴ Ŭ·¡½º·Î ÀÌ·ç¾îÁø´Ù.
-
javax.xml.registry.infomodel: ÀÌ´Â JAXR¸¦
À§ÇÑ Á¤º¸ ¸ðµ¨À» Á¤ÀÇÇÏ´Â ÀÎÅÍÆäÀ̽º·Î ÀÌ·çÁö¸ç, ÀÌ ÀÎÅÍÆäÀ̽º´Â ·¹Áö½ºÆ®¸® ³»¿¡ »óÁÖÇÏ´Â ¿ÀºêÁ§Æ®ÀÇ
ŸÀÔ°ú ±×°ÍµéÀÌ ¼·Î°£¿¡ °ü°èÇÏ´Â ¹æ½ÄÀ» Á¤ÀÇÇÑ´Ù. ÀÌ ÆÐŰÁöÀÇ ±âº» ÀÎÅÍÆäÀ̽º´Â RegistryObject
ÀÎÅÍÆäÀ̽ºÀÌ´Ù. ¼ºêÀÎÅÍÆäÀ̽º¿¡´Â Organization, Service,
ServiceBinding µîÀÌ ÀÖ´Ù.
javax.xml.registry ÆÐŰÁö°¡ ƯÈ÷ Áß¿äÇÑ ÀÌÀ¯´Â ´ÙÀ½°ú °°Àº ¿©·¯ °¡Áö À¯¿ëÇÑ Å¬¶óÀÌ¾ðÆ® ÀÎÅÍÆäÀ̽º¸¦
Æ÷ÇÔÇϰí Àֱ⠶§¹®ÀÌ´Ù.
-
Connection: ÀÌ ÀÎÅÍÆäÀ̽º´Â ·¹Áö½ºÆ®¸® Á¦°øÀÚ¿Í ¿¬°áµÈ
Ŭ¶óÀÌ¾ðÆ® ¼¼¼ÇÀ» ³ªÅ¸³½´Ù. Ŭ¶óÀÌ¾ðÆ®°¡ ·¹Áö½ºÆ®¸®¸¦ »ç¿ëÇÏ·Á¸é ¹Ýµå½Ã JAXR Á¦°øÀÚ¿Í Ä¿³Ø¼ÇÀ»
»ý¼ºÇØ¾ß ÇÑ´Ù.
-
RegistryService: Ŭ¶óÀÌ¾ðÆ®´Â ¿¬°á·ÎºÎÅÍ RegistryService
¿ÀºêÁ§Æ®¸¦ ȹµæÇÑ´Ù. RegistryService ¿ÀºêÁ§Æ®´Â Ŭ¶óÀÌ¾ðÆ®°¡
·¹Áö½ºÆ®¸®¿¡ ¾×¼¼½ºÇϱâ À§ÇØ »ç¿ëÇÏ´Â ÀÎÅÍÆäÀ̽º BusinessQueryManager,
BusinessLifeCycleManager µîÀ» ȹµæÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
-
BusinessQueryManager: ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â
¿ÀºêÁ§Æ®´Â Ŭ¶óÀÌ¾ðÆ®°¡ javax.xml.registry.infomodel
ÀÎÅÍÆäÀ̽º¿Í ÀÏÄ¡ÇÏ´Â Á¤º¸¸¦ ·¹Áö½ºÆ®¸®¿¡¼ °Ë»öÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
-
BusinessLifeCycleManager: ÀÌ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â
¿ÀºêÁ§Æ®´Â Ŭ¶óÀÌ¾ðÆ®°¡ ·¹Áö½ºÆ®¸® ³»ÀÇ Á¤º¸¸¦ ¼öÁ¤Çϰųª »èÁ¦ÇÒ ¼ö ÀÖ°Ô ÇØÁØ´Ù.
JAXR Ä¿³Ø¼Ç ¸¸µé±â
JAXR Ŭ¶óÀÌ¾ðÆ®´Â Ã³À½¿¡ Ãß»ó Ŭ·¡½º ConnectionFactoryÀÇ ÀνºÅϽº¸¦ »ý¼ºÇÑ´Ù.
import javax.xml.registry.*;
...
ConnectionFactory connFactory =
ConnectionFactory.newInstance();
´ÙÀ½À¸·Î, Ŭ¶óÀÌ¾ðÆ®´Â ·¹Áö½ºÆ®¸®ÀÇ URLÀ» ÁöÁ¤ÇÏ´Â ÀÏ·ÃÀÇ ¼Ó¼ºÀ» »ý¼ºÇÑ´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ÄÚµå´Â IBM Å×½ºÆ® ·¹Áö½ºÆ®¸®¿¡ ´ëÇÑ
ÁúÀÇ ¼ºñ½º¿Í ÃâÆÇ ¼ºñ½ºÀÇ URLÀ» Á¦°øÇÑ´Ù.
Properties props = new Properties();
props.setProperty("javax.xml.registry.queryManagerURL",
"http://uddi.ibm.com/testregistry/inquiryapi");
props.setProperty("javax.xml.registry.lifeCycleManagerURL",
"https://uddi.ibm.com/testregistry/publishapi");
Çʿ信 µû¶ó(°¡·É ¹æÈº® µÚ¿¡ ÀÖ´Â °æ¿ì) Ŭ¶óÀÌ¾ðÆ®°¡ ½ÇÇàµÇ´Â ³×Æ®¿öÅ©¿¡ ´ëÇÑ ÇÁ·Ï½Ã È£½ºÆ® ¹× Æ÷Æ® Á¤º¸¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ÁúÀÇÀÇ
°æ¿ì, Ŭ¶óÀÌ¾ðÆ®´Â HTTP ÇÁ·Ï½Ã È£½ºÆ® ¹× Æ÷Æ®¸¸À» ÁöÁ¤ÇØ¾ß ÇÒ ¼öµµ ÀÖÀ¸¸ç, ¾÷µ¥ÀÌÆ®ÀÇ °æ¿ì¿¡´Â
ÀϹÝÀûÀ¸·Î HTTPS ÇÁ·Ï½Ã È£½ºÆ® ¹× Æ÷Æ® ¶ÇÇÑ ÁöÁ¤ÇØ¾ß ÇÑ´Ù.
props.setProperty("com.sun.xml.registry.http.proxyHost",
"myhost.mydomain");
props.setProperty("com.sun.xml.registry.http.proxyPort",
"8080");
props.setProperty("com.sun.xml.registry.https.proxyHost",
"myhost.mydomain");
props.setProperty("com.sun.xml.registry.https.proxyPort",
"8080");
±×·± ´ÙÀ½ Ŭ¶óÀÌ¾ðÆ®´Â Ä¿³Ø¼Ç ÆÑÅ丮(connection factory)¿¡ ´ëÇÑ ¼Ó¼ºÀ» ¼³Á¤Çϰí Ä¿³Ø¼ÇÀ» »ý¼ºÇÑ´Ù.
connFactory.setProperties(props);
Connection connection = connFactory.createConnection();
Ä¿³Ø¼ÇÀ» »ý¼ºÇÑ ÈÄ Å¬¶óÀÌ¾ðÆ®´Â Ä¿³Ø¼ÇÀ» ÀÌ¿ëÇÏ¿© RegistryService ¿ÀºêÁ§Æ®¸¦ ȹµæÇÑ´Ù. ±×·± ´ÙÀ½
RegistryService¸¦ ÀÌ¿ëÇÏ¿© ÀûÀýÇÑ ÁúÀÇ ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÏ´Â
¿ÀºêÁ§Æ®¸¦ ȹµæÇÑ´Ù.
RegistryService rs = connection.getRegistryService();
BusinessQueryManager bqm = rs.getBusinessQueryManager();
BusinessLifeCycleManager blcm =
rs.getBusinessLifeCycleManager();
Ŭ¶óÀÌ¾ðÆ®°¡ ·¹Áö½ºÆ®¸®¿¡ µ¥ÀÌÅ͸¦ ÀÐ°í ¾µ Çʿ䰡 ÀÖ´Â °æ¿ì¿¡´Â RegistryService ¿ÀºêÁ§Æ®·ÎºÎÅÍ BusinessQueryManager
¿ÀºêÁ§Æ®¿Í BusinessLifeCycleManager ¿ÀºêÁ§Æ®¸¦ ¸ðµÎ ȹµæÇؾßÇÑ´Ù.
Ŭ¶óÀÌ¾ðÆ®°¡ °£´ÜÇÑ ÁúÀǸ¸À» ¼öÇàÇÏ´Â °æ¿ì¿¡´Â ÀϹÝÀûÀ¸·Î BusinessQueryManager
¿ÀºêÁ§Æ®¸¸ ÇÊ¿äÇÏ´Ù.
·¹Áö½ºÆ®¸® Äõ¸®
BusinessQueryManager ÀÎÅÍÆäÀ̽º´Â Ŭ¶óÀÌ¾ðÆ®°¡ µ¥ÀÌÅ͸¦
°Ë»öÇÒ ¼ö ÀÖ°Ô ÇØÁÖ´Â ¿©·¯ °¡Áö ¸Þ¼Òµå¸¦ Áö¿øÇϴµ¥, ÀÌ ¸Þ¼ÒµåµéÀº ´ëºÎºÐ ¸Þ¼Òµå ÀÎÀÚ¿¡ ÁöÁ¤µÈ
ÀÏ·ÃÀÇ ±âÁØÀ» ÃæÁ·ÇÏ´Â BulkResponse(¿ÀºêÁ§Æ®ÀÇ ÁýÇÕ)¸¦ ¸®ÅÏÇÑ´Ù.
´ÙÀ½Àº ¸Þ¼Òµåµé Áß¿¡¼ °¡Àå À¯¿ëÇÑ °ÍµéÀÌ´Ù.
-
findOrganizations: ÀÌ ¸Þ¼Òµå´Â ÁöÁ¤µÈ ±âÁØ(ÈçÈ÷
ºÐ·ù ½ºÅ°¸¶(classification scheme) ³»ÀÇ À̸§ ÆÐÅÏ ¶Ç´Â ºÐ·ù)À» ÃæÁ·ÇÏ´Â
Á¶Á÷ü(organization)ÀÇ ¸ñ·ÏÀ» ¸®ÅÏÇÑ´Ù.
public BulkResponse findOrganizations(
Collection findQualifiers,
Collection namePatterns,
Collection classifications,
Collection specifications,
Collection externalIdentifiers,
Collection externalLinks)
throws JAXRException
-
findServices: ÀÌ ¸Þ¼Òµå´Â ÁöÁ¤µÈ Á¶Á÷ü°¡ Á¦°øÇÏ´Â ÀÏ·ÃÀÇ
¼ºñ½º¸¦ ¸®ÅÏÇÑ´Ù.
public BulkResponse findServices(Key orgKey,
Collection findQualifiers,
Collection namePatterns,
Collection classifications,
Collection specifications)
throws JAXRException
-
findServiceBindings: ÀÌ ¸Þ¼Òµå´Â ÁöÁ¤µÈ ¼ºñ½º¿¡
ÀÇÇØ Áö¿øµÇ´Â ¼ºñ½º ¹ÙÀεù(¼ºñ½º¿¡ ¾×¼¼½ºÇÏ´Â ¹æ¹ý¿¡ °üÇÑ Á¤º¸)À» ¸®ÅÏÇÑ´Ù.
public BulkResponse findServiceBindings(Key serviceKey,
Collection findQualifiers,
Collection classifications,
Collection specifications)
throws JAXRException
À̸§À¸·Î Á¶Á÷ü¸¦ °Ë»öÇϱâ À§Çؼ´Â ã±â ¼ö½Ä¾î¿Í À̸§ ÆÐÅÏÀÇ Á¶ÇÕÀ» ÀÌ¿ëÇÑ´Ù. findOrganizations()
¸Þ¼Òµå´Â findQualifier ¿ÀºêÁ§Æ® ÁýÇÕÀ» 1Â÷ ÀÎÀÚ·Î, namePattern
¿ÀºêÁ§Æ®ÀÇ ÁýÇÕÀ» 2Â÷ ÀÎÀÚ·Î ¼±ÅÃÇÑ´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÆÛ¼¾Æ® ºÎÈ£(%)¸¦
ÀÌ¿ëÇÏ¿© Á¶Á÷ü À̸§ ³»ÀÇ ¾î´À °÷¿¡¼³ª ÁúÀÇ ¹®ÀÚ¿ÀÌ ¹ß°ßµÉ ¼ö ÀÖÀ½À» ¸í½ÃÇÑ´Ù. ¿¹¸¦ µé¾î,
´ÙÀ½ÀÇ ÄÚµå ´ÜÆíÀº À̸§¿¡ qString¿¡ Æ÷ÇÔµÈ ¹®ÀÚ°¡ µé¾î ÀÖ´Â Á¶Á÷ü¿¡
´ëÇÏ¿© ´ë¼Ò¹®ÀÚ¸¦ ±¸ºÐÇÏ´Â °Ë»öÀ» ¼öÇàÇÑ´Ù.
ArrayList qualifiers = new ArrayList();
qualifiers.add(FindQualifier.CASE_SENSITIVE_MATCH);
qualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
ArrayList names = new ArrayList();
names.add("%" + qString + "%");
BulkResponse response =
bqm.findOrganizations(
qualifiers, names, null, null, null, null);
Collection orgs = response.getCollection();
ºÐ·ù¸¦ ÀÌ¿ëÇØ Á¶Á÷ü¸¦ ãÀ» ¼öµµ ÀÖ´Ù. À̸¦ À§Çؼ´Â ƯÁ¤ÇÑ ºÐ·ù ½ºÅ°¸¶ ³»¿¡¼ ºÐ·ù¸¦ ¼³Á¤ÇÑ ´ÙÀ½ ÀÌ ºÐ·ù¸¦ findOrganizations()
¸Þ¼Òµå¿¡ ´ëÇÑ ÀÎÀÚ·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ´ÙÀ½ÀÇ ÄÚµå ´ÜÆíÀº North
American Industry Classification System (NAICS) ºÐ·ù¹ý
³»ÀÇ Æ¯Á¤ ºÐ·ù¿¡ ÀÏÄ¡ÇÏ´Â ¸ðµç Á¶Á÷ü¸¦ ã´Â´Ù.
ClassificationScheme cScheme =
bqm.findClassificationSchemeByName(null,
"ntis-gov:naics");
Classification classification =
blcm.createClassification(cScheme,
"Snack and Nonalcoholic Beverage Bars", "722213");
Collection classifications = new ArrayList();
classifications.add(classification);
BulkResponse response = bqm.findOrganizations(null,
null, classifications, null, null, null);
Collection orgs = response.getCollection();
Ŭ¶óÀÌ¾ðÆ®°¡ Á¶Á÷ü¸¦ ã¾Æ³½ ÈÄ¿¡´Â ÇØ´ç Á¶Á÷üÀÇ ¼ºñ½º¸¦ ãÀ» ¼ö ÀÖ´Ù. ºñÁî´Ï½º ¼ºñ½º¸¦ È£ÃâÇÏ´Â ¹æ¹ýÀº ¸î °¡Áö°¡ ÀÖÀ» ¼ö Àִµ¥,
°¢ È£ÃâÀº UDDI¿¡¼ ¹ÙÀεù ÅÛÇø´¿¡ ÀÇÇØ ±â¼úµÈ´Ù. ServiceBinding
ÀνºÅϽº´Â UDDI ¹ÙÀεù ÅÛÇø´¿¡ ¸ÅÇÎÇÏ´Â RegistryObjects·Î,
¼ºñ½º È£Ãâ ¹æ¹ý¿¡ °üÇÑ ±â¼ú Á¤º¸¸¦ ³ªÅ¸³½´Ù.
Iterator orgIter = orgs.iterator();
while (orgIter.hasNext()) {
Organization org = (Organization) orgIter.next();
Collection services = org.getServices();
Iterator svcIter = services.iterator();
while (svcIter.hasNext()) {
Service svc = (Service) svcIter.next();
Collection serviceBindings =
svc.getServiceBindings();
Iterator sbIter = serviceBindings.iterator();
while (sbIter.hasNext()) {
ServiceBinding sb =
(ServiceBinding) sbIter.next();
}
}
}
ÀÌ ½ÃÁ¡¿¡¼ ¿ø½Ã ÄÚµå´Â ¹Ýµå½Ã ¹®Á¦ÀÇ ·¹Áö½ºÆ®¸® ŸÀÔ¿¡ ´ëÇÑ Ç¥ÁØÀ» µû¶ó¾ß ÇÑ´Ù. µû¶ó¼ UDDI ¿¹Á¦¸¦ °è¼ÓÇÏ·Á¸é °³¹ßÀÚ°¡ ServiceBinding¿¡
´ëÇÑ tModel Á¤º¸¿¡ ¾×¼¼½ºÇϰí À̸¦ ÀÌ¿ëÇÏ¿© ¼ºñ½º È£Ãâ ¹æ¹ý¿¡ °üÇÑ
Á¤È®ÇÑ Á¤º¸¸¦ ȹµæÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
Á» ÀÚ¼¼ÇÑ ³»¿ëÀº ´ÙÀ½À» ÂüÁ¶Çϱ⠹ٶõ´Ù.
- JAXR: JAXR
page
- UDDI: UDDI.org
¹× registry finder
page ÂüÁ¶. ·¹Áö½ºÆ®¸® ÆÄÀδõ ÆäÀÌÁö¿¡ "Inquiry API"¿Í
¡®"Publish API" ·Î ±âÀçµÈ ¼¹öµéÀº ¼º°øÀûÀÎ JAXR Ä¿³Ø¼ÇÀ» ¼öÇàÇϱâ
À§ÇØ ¿ø½Ã ÄÚµå ³»ÀÇ ¼Ó¼º ÆÄÀÏ¿¡ ÀÔ·ÂÇÒ URLµéÀÌ´Ù. UDDI ¼¹ö¸¦ È£½ºÆÃÇϴ ȸ»ç¿¡ µî·ÏÇÏ¿©
»ç¿ëÀÚ À̸§°ú ºñ¹Ð¹øÈ£¸¦ ¹Þ¾Æ¾ß ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ »çÀÌÆ®´Â
tModel°ú
°°Àº ·Î-·¹º§ UDDI À¥ ¼ºñ½º ±¸¼º¼Ò¿¡ °üÇÑ Á¤º¸¸¦ ¾ò´Â µ¥µµ À¯¿ëÇÏ´Ù.
- EbXML: the EbXML Page.
Sample Code
ÀÌ Å×Å© ÆÁÀ» À§ÇÑ ¿¹Á¦ ÄÚµå´Â JAXR¸¦ ÀÌ¿ëÇÏ¿© À̸§ÀÌ "%USA%"ÀÇ ÆÐÅϰú ÀÏÄ¡ÇÏ´Â Á¶Á÷ü¿¡ ´ëÇÑ ·¹Áö½ºÆ®¸®¸¦ Á¶È¸ÇÕ´Ï´Ù.
¿¹Á¦ Äڵ带 ±¸µ¿ÇÏ·Á¸é,
-
ÀÌ Å×Å© ÆÁÀ» À§ÇÑ »ùÇà ¾ÆÄ«À̺긦 ´Ù¿î·ÎµåÇÕ´Ï´Ù.
- JWSDP
1.5¸¦ ´Ù¿î·ÎµåÇÏ¿© ¼³Ä¡ÇÕ´Ï´Ù.
-
¿¹Á¦ ¾ÆÄ«À̺긦 ´Ù¿î·ÎµåÇÑ µð·ºÅ丮·Î À̵¿ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¿¹Á¦ ¾ÆÄ«À̺갡 ´ã±ä JAR ÆÄÀÏÀÇ ¾ÐÃàÀ» DZ´Ï´Ù.
jar xvf ttmar2005jaxr.jar
-
°¢ÀÚÀÇ
CLASSPATH ȯ°æ º¯¼ö¿¡ ´ÙÀ½ JWSDP 1.5 ¶óÀ̺귯¸®¸¦ Ãß°¡ÇÕ´Ï´Ù. À§Ä¡´Â ±âº» µð·ºÅ͸®¸¦ ±âÁØÀ¸·Î ºÎ¿©µË´Ï´Ù(jwsdp-1.5)
jaxr/lib/jaxr-api.jar
jaxr/lib/jaxr-impl.jar
jaxp/lib/jaxp-api.jar
jaxp/lib/endorsed/xercesImpl.jar
jaxp/lib/endorsed/xalan.jar
jaxp/lib/endorsed/dom.jar
jaxp/lib/endorsed/sax.jar
jwsdp-shared/lib/mail.jar
jwsdp-shared/lib/activation.jar
jwsdp-shared/lib/jaas.jar
jwsdp-shared/lib/commons-logging.jar
saaj/lib/saaj-api.jar
saaj/lib/saaj-impl.jar
jaxb/lib/jaxb-api.jar
jaxb/lib/jaxb-impl.jar
jaxb/lib/jaxb-libs.jar
jaxb/lib/jaxb-xjc.jar
BusinessQueryTest.java ÆÄÀÏÀ» ÄÄÆÄÀÏÇÕ´Ï´Ù.
-
¹æÈº®ÀÌ ÀÛµ¿ÁßÀÎ °æ¿ì¿¡´Â ¹Ýµå½Ã ¿ø½Ã ÄÚµå ³»¿¡ ÇØ´ç ÇÁ·Ï½Ã Á¤º¸¸¦ ÀÔ·ÂÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é
JAXR API°¡ ¿ÜºÎ ¼¹ö¿¡ ¿¬°áÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.
BusinessQueryTest¸¦ ±¸µ¿ÇÕ´Ï´Ù.
java BusinessQueryTest
´ÙÀ½°ú °°ÀÌ ½ÃÀ۵Ǵ °á°ú°¡ Ç¥½ÃµÇ¾î¾ß ÇÕ´Ï´Ù.
Successfully queried the registry for organization matching
the name pattern: "%USA%"
Results found: 3
Organization Name: USA-Works
Organization Key: 8cd1668c-64fa-4aa5-a053-bd0be4bd53f5
Organization Description: Liberty and Freedom
Service Name: Federal Government Service
Service Key: 056b2905-3999-4912-89de-fe79cbfedea0
Service Description: Services of the Federal Government
|
|
 |
 |
º» ¸ÞÀÏÀº ¼ö½ÅÀ» µ¿ÀÇÇÑ È¸¿ø´Ô¿¡°Ô¸¸ ¹ß¼ÛµË´Ï´Ù.
º» ¸ÞÀÏÀÇ ¼ö½ÅÀ» °ÅºÎÇϰųª ¼ö½ÅÁÖ¼Ò¸¦ º¯°æÇÏ·Á¸é SKDN@Sun.comÀ¸·Î
¹®ÀÇ Áֽñ⠹ٶø´Ï´Ù.
SKDN(Sun Korea
Developers Network)¿¡¼ J2EE/J2SE Å×Å©ÆÁ µî ´Ù¾çÇÑ ¾ÆÆ¼Å¬µéÀ»
Âü°íÇϼ¼¿ä.
Copyright 2003-2005 Sun Korea, Inc. All rights reserved.
|