|
°Á Àü Å¿ÀÀÇ Àâ´ã>
µåµð¾î 3¹øÂ° °ÁÂÀÔ´Ï´Ù. ÇÑ ÁÖ¿¡ Çѹø °Á ¿Ã¸®´Â °Íµµ ±×´ÙÁö ½±Áö°¡ ¾Ê³×¿ä.
¿¹Àü¿¡´Â ÇÏ·ç¿¡ Çϳª¾¿µµ ¿Ã·È¾ú´Âµ¥... ÂÁ...
ºñ·Ï ¿Ã¸®´Â ÅÒÀº Á¶±Ý ´À·ÁÁ³Áö¸¸ ²ÙÁØÈ÷ ÇØº¼±î ÇÕ´Ï´Ù...
Áß¿äÇÑ °ÍÀº "²ÙÁØÈ÷" ¶ó°í »ý°¢Çϴϱî¿ä...
À̹ø °Á´ À¥À» ÅëÇÑ ºñ µ¿±â È£ÃâÀÇ ¼¼ ¹øÂ° ½Ã°£ÀÌ µÇ°Ú½À´Ï´Ù. À̹ø °Á¿¡¼´Â Microsoft¿¡¼ IE Àü¿ëÀ¸·Î Á¦°ø ¹× Áö¿øÇß´ø(°ú°ÅÇüÀÔ´Ï´Ù) WebService HTC ÆÄÀÏÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ·Á ÇÕ´Ï´Ù. ÀÌ ±â¹ýÀº ¼¹ö Ãø ¸ðµâ·Î´Â À¥ ¼ºñ½º¸¦ ÀÌ¿ëÇϰí, Ŭ¶óÀÌ¾ðÆ® Ãø ¸ðµâ·Î´Â htc ±â¼úÀ» ÀÌ¿ëÇÏ´Â ºñ µ¿±â È£Ãâ ¹æ½ÄÀä. Á¤½Ä ¸íĪÀº WebService Behavior¶ó°í ¹ßÇ¥µÇ¾ú´ø °ÍÀÔ´Ï´Ù. Microsoft¿¡¼ ¸»ÀÔ´Ï´Ù.
Àú¹ø °Áµµ ±×·¨Áö¸¸, À̹ø °Áµµ ÃʱÞÀÚµéÀÌ Á¢±ÙÇϱ⿡´Â ±×¸® ½±Áö ¾ÊÀº ³»¿ëÀÏ ¼ö ÀÖ½À´Ï´Ù. ±×·¡¼, ¾à°£ Á˼ÛÇϱ⵵ ÇÕ´Ï´Ù¸¸ ¤Ì¤Ì. ±×·¸´Ù ÇÏ´õ¶óµµ, ÀÌ ³»¿ë ¶ÇÇÑ Áß±ÞÀÚ·Î °¡±â À§Çؼ´Â ¾Ë¾ÆµÎ¸é ¸Å¿ì ÁÁÀº ³»¿ëÀ̱⿡ °ú°¨ÇÏ°Ô ÁøÇàÇØ º¸·Á ÇÕ´Ï´Ù. ^^
WebService behavior´Â ¿ø°Ý ¸Þ¼µå¸¦ È£ÃâÇϱâ À§ÇÑ ±â´ÉµéÀ» ĸ½¶ÈÇϰí ÀÖ´Â °æ·®ÀÇ ÄÄÆ÷³ÍÆ®ÀÔ´Ï´Ù. À¥ ¼ºñ½º¶ó´Â À̸§ÀÌ ¸»ÇØ ÁÖµíÀÌ, ³»ºÎÀûÀÎ ÇÁ·ÎÅäÄݷδ ¿ª½Ã³ª SOAP(SOAPÀ» ¸ô¶óµµ »ç¿ëÇÏ´Â µ¥¿¡´Â ÀüÇô ¹®Á¦°¡ ¾ø½À´Ï´Ù)À» ÀÌ¿ëÇϱ¸¿ä. MSÀÇ ±â¼úÀÌ´Ùº¸´Ï ÀÌ ±â¹ýÀ» ÀÌ¿ëÇÏ·Á¸é Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú´Â IE 5 ÀÌ»óÀ» »ç¿ëÇÏ¼Å¾ß ÇÕ´Ï´Ù. ¼¹ö´Â WSDL 1.1À» Áö¿øÇϱ⸸ ÇÑ´Ù¸é ¾î¶°ÇÑ Ç÷§ÆûÀ̾ ¹«°üÇÏÁö¸¸ ¸»ÀÔ´Ï´Ù. ¹°·Ð, ÀϹÝÀûÀÎ °æ¿ì´Â .NET À¥ ¼ºñ½º¸¦ ÀÌ¿ëÇϰÚÁö¿ä?
»ç½Ç, ±âÁ¸ °Á¿¡¼´Â ºñ µ¿±â È£Ãâ¿¡ ´ëÇÑ ÀÀ´ä(Response) °á°ú·Î ´Ü¼ø ¹®ÀÚ¿ÀÇ ³ª¿À» ÀÌ¿ëÇߴµ¥¿ä. Ãâ·Â µ¥ÀÌÅÍ·Î ´Ü¼øÇÑ ¹®ÀÚ¿ÀÇ ³ª¿À» ÀÌ¿ëÇÏ´Â ¹æ½ÄÀº °íÀüÀûÀÎ ¹æ½Ä(¹¹, °íÀüÀûÀÎ ¹æ½ÄÀÌ ³ª»Û °ÍÀº ¾Æ´ÏÁö¸¸)ÀÎÁö¶ó Å©°Ô ±ÇÀåÇÏÁö´Â ¾Ê´Â ÆíÀÔ´Ï´Ù. ´Ùµé ¾Æ½Ã°ÚÁö¸¸, ÇöÀç´Â ±×·¯ÇÑ µ¥ÀÌÅÍ Åë½ÅÀ» À§Çؼ ¾÷°è Ç¥ÁØÀÎ XMLÀ» ±ÇÀåÇÏ´Â ÆíÀÌÁÒ. XMLÀ» »ç¿ëÇÏ¸é ´Ù¾çÇÑ Å¬¶óÀÌ¾ðÆ®µéÀÌ ¼¹öÀÇ µ¥ÀÌÅ͸¦ ÀÌ¿ëÇÔ¿¡ ÀÖ¾î ±× °¡¿ë¼ºÀÌ »ó´çÈ÷ ³ô´Ù´Â ÀåÁ¡ÀÌ ÀÖÀ¸´Ï±î¿ä. °Ô´Ù°¡, Áß¿äÇÑ °ÍÀº XMLÀ» ÀÌ¿ëÇÏ´Â °ÍÀÌ ¹Ì·¡¸¦ ³»´Ù ºÃÀ» ¶§, ÇÇÇØ°¥ ¼ö ¾ø´Â ¼±ÅÃÀ̱⵵ ÇÕ´Ï´Ù. ÇÏÁö¸¸, XMLÀ» ÀÌ¿ëÇÒ °æ¿ìÀÇ ´ÜÁ¡Àº Ŭ¶óÀÌ¾ðÆ®°¡ ±× XML µ¥ÀÌÅ͸¦ ÆÄ½Ì(ÇØ¼® ¹× ÃßÃâ)ÇØ¼ »ç¿ëÇØ¾ß Çϱ⿡, ÆÄ½ÌÀ» À§ÇÑ ·ÎÁ÷À» º°µµ·Î ÀÛ¼ºÇØÁÖ¾î¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® Ãø¿¡ º°µµÀÇ ÆÄ¼°¡ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é ¸»ÀÌÁÒ.
±â»Ú°Ôµµ, À̹ø °Á¿¡¼ »ç¿ëÇÏ·Á´Â WebService Behavior ÄÄÆ÷³ÍÆ®´Â ÀÚüÀûÀ¸·Î ÀÛÀº ±Ô¸ðÀÇ ÆÄ¼ ¶ÇÇÑ Á¦°øÇϰí Àֱ⿡, º°µµ·Î ÆÄ½Ì ÀÛ¾÷À» ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ´ÙÇà Áß ºÒÇàÀ̶ó¸é, »ç¿ëÇÒ ¼ö ÀÖ´Â µ¥ÀÌÅÍ Çü½Ä¿¡ Á¦ÇÑÀÌ ÀÖ´Ù´Â °ÍÀ̱ä ÇÏÁö¸¸ ¸»ÀÌÁÒ.
WebService Behavior ÄÄÆ÷³ÍÆ®°¡ Áö¿øÇÏ´Â µ¥ÀÌÅÍ Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.
| ASP.NET µ¥ÀÌÅÍ Çü½Ä |
XML µ¥ÀÌÅÍ Çü½Ä |
| String |
String |
| Boolean |
Boolean |
| float(single) |
Float |
| double |
Double |
| decimal |
decimal |
| long |
long |
| int |
Int |
| short |
Short |
| byte |
unsignedByte |
| ulong |
unsignedLong |
| uint |
unsignedInt |
| ushort |
unsignedShort |
| sbyte |
Byte |
| DateTime |
Date |
| DateTime |
Time |
| String[] |
ArrayOfString |
| boolean[] |
ArrayOfBoolean |
| float[] |
ArrayOfFloat |
| double[] |
ArrayOfDouble |
| decimal[] |
ArrayOfDecimal |
| long[] |
ArrayOfLong |
| int[] |
ArrayOfInt |
| short[] |
ArrayOfShort |
WebService behavior°¡ Áö¿øÇÏ´Â µ¥ÀÌÅÍ Çü½ÄÀÌ ÀÚ¼¼ÇÏ°Ô ³ª¿ÍÀÖ´Â ¸µÅ©´Â ´ÙÀ½°ú °°À¸´Ï Âü°íÇØ º¸½Ã´Â °Íµµ ÁÁÀ» µí ÇÕ´Ï´Ù.
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/webservice/webservice.asp
¶ÇÇÑ, ±âÁ¸ °Á´ ¼¹ö ¸ðµâÀ» asp³ª aspx ÆäÀÌÁö·Î Á¦ÀÛÇß¾ú´Âµ¥¿ä. ±×°ÍÀÌ ±×¸® ³ª»Û ¼±ÅÃÀº ¾Æ´Ï°Ú½À´Ï´Ù¸¸, °¡±ÞÀûÀ̸é ÀÌ ºÎºÐµµ À¥ ÆäÀÌÁö°¡ ¾Æ´Ñ À¥ ¼ºñ½º ¸ðµâ(asmx)·Î ÀÛ¼ºÇØ ÁÖ´Â °ÍÀÌ Á» ´õ ¹Ì·¡ÁöÇâÀûÀÎ ¹æ½ÄÀ̶ó ÇÒ ¼ö ÀÖ°Ú½À´Ï´Ù. ±×·¸°Ô ÇÏ´Â °ÍÀÌ º¸´Ù È®À强 ÀÖ´Â ¹æ¾ÈÀÌÁö ¾Ê°Ú½À´Ï±î? asp³ª aspx ¸¦ ÀÌ¿ëÇϸé ó¸® ·ÎÁ÷ÀÌ ÇÊ¿äÇÒ ¶§¸¶´Ù º°µµÀÇ ÆäÀÌÁö¸¦ ÀÛ¼ºÇØ¾ß ÇÏÁö¸¸, asmx´Â ±×·¯ÇÑ ·ÎÁ÷À» À¥ ¸Þ¼µå·Î ¸¸µé ¼ö ÀÖÀ¸´Ï±î¿ä. °Ô´Ù°¡, ±×·¸°Ô ¸¸µé¸é ÀÚµ¿À¸·Î XML serializationµµ Áö¿øµÇ´Ï±ñ ¼¹ö Ãø µ¥ÀÌÅÍ ¹Ýȯ ½Ã, XML ±¸¼ºÀ» °í¹ÎÇÒ Çʿ䰡 ¾ø´Ù´Â ÀÌÁ¡µµ ÀÖÁÒ.
±×·¡¼, ±ÇÀåµÇ´Â ¹æ½ÄÀº ¼¹ö ÃøÀÇ ¸ðµâÀº À¥ ¼ºñ½º·Î ÀÛ¼ºÇϰí, µ¥ÀÌÅÍ Åë½ÅÀº XML·Î ÇÏ´Â °ÍÀÔ´Ï´Ù. À̰ÍÀÌ ¹ÙÅÁÀÌ µÇ¾î AJAX(Asynchronous JavaScript and XML)·Î±îÁö ¹ßÀüÀÌ µÈ °ÍÀ̱⵵ ÇÏÁÒ(¿ä°Ç ´ã ¹ø¿¡ ´Ù·ê ÁÖÁ¦À̱⵵ ÇÕ´Ï´Ù)
¼µÎ°¡ ¹«ÁöÇÏ°Ô ±æ¾ú´Âµ¥¿ä. »ç½Ç ¿¹Á¦´Â »ó´çÈ÷ ´Ü¼øÇÕ´Ï´Ù. ¿Ö³ÄÇϸé, ÀÌÀü °Á¿¡¼ ´Ù·ç¾ú´ø ´ëºÎºÐÀÇ ÀÛ¾÷À» ÄÄÆ÷³ÍÆ®È ½ÃÄѵР°ÍÀÌ WebService BehaviorÀÌ´Ù º¸´Ï, À̸¦ ÀÌ¿ëÇÒ °æ¿ì ÄÚµù·®ÀÌ »ó´çÈ÷ ÁÙ¾îµé »Ó ´õ·¯ »ç¿ëÇϱ⵵ ¸Å¿ì ÆíÇϱ⠶§¹®ÀÌÁÒ.
±Ùµ¥, Áß¿äÇÑ °ÍÀº ºñ µ¿±â È£Ãâ ù ¹øÂ° °Á¿¡¼µµ ¸»¾¸µå·È´Ù½ÃÇÇ, WebService Behavior´Â ÇöÀç´Â MS¿¡¼ ´õ ÀÌ»ó Áö¿øÀ» ÇÏÁö ¾Ê´Â ÄÄÆ÷³ÍÆ®¶ó´Â Á¡ÀÔ´Ï´Ù. À̰ÍÀÌ ¹®Á¦¶ó¸é ¹®Á¦ÁÒ. WebService Behavior »çÀÌÆ®¿¡ °¡ º¸¸é ´ÙÀ½°ú °°Àº »¡°£»ö °æ°í¹®ÀÌ ¶°~¾ï ÇÏ´Ï ¹öƼ°í ÀÖ´Â °ÍÀ» º¼ ¼ö ÀÖ¾î¿ä.
Microsoft¢ç Internet Explorer WebService Behavior may be downloaded; however, it is not currently supported.
±×·¸½À´Ï´Ù. ´Ù¿î·ÎµåÇØ¼ »ç¿ëÇÒ ¼ö´Â ÀÖÁö¸¸, Áö¿øÀº ÇöÀç ¾È ÇÑ´Ù´Â °ÅÁÒ. »ç¿ëÇÏ´Ù°¡ ¹®Á¦ »ý±â¸é ³ÊÈñµéÀÌ ¾Ë¾Æ¼ °íÃļ »ç¿ëÇϼ¼¿ä~ ¹¹ ±×·± ÀǹÌÀÔ´Ï´Ù.
¸µÅ©´Â...
http://msdn.microsoft.com/archive/?url=/archive/en-us/samples/internet/behaviors/library/webservice/default.asp
ÀÚ. ÀÏ´Ü ´Ù¿î·Îµå¸¦ ¹Þ¾Æº¾½Ã´Ù. ±×·¯¸é, ²Ã¶û webservice.htc ÆÄÀÏ Çϳª¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. Htc°¡ ¹«¾ùÀ̰í, ¾î¶»°Ô Á¦ÀÛ ¹× »ç¿ëÇÒ ¼ö ÀÖ´ÂÁö´Â ¼Û±º´ÔÀÇ °Á¸¦ ÅëÇØ¼ ¹è¿ï ¼ö ÀÖ½À´Ï´Ù. Å¿À »çÀÌÆ®ÀÇ °Á Áß ¸Å¿ì ÈǸ¢ÇÑ °Á·ΠÆò°¡ ¹Þ°í ÀÖ´Â °ÁÂÀ̱⵵ ÇÏÁÒ. Htc¿¡ ´ëÇØ¼ ¾Ë°í ½Í´Ù¸é ´ÙÀ½ ¸µÅ©¸¦ Ŭ¸¯Çϼ¼¿ä ^^ (¾Ë°í ½Í¾î¿ä~ Ŭ¸¯)
webservice.htc ÆÄÀÏÀ» ¿¾î¼ ¼Ò½º¸¦ º¸½Ã¸é, ÀÏ´Ü Á».. ºÎ´ã½º·´½À´Ï´Ù. ¾î·Á¿î ÄÚµåµéÀÌ ¸¶±¸ ³ª¿µÇ¾î ÀÖÀ¸´Ï±î¿ä(°Ô´Ù°¡ µé¿©¾²±âµµ ¾È µÇ¾î ÀÖ¾î¼ º¸±â¿¡ ¾à°£ Â¥Áõ³ª±âµµ ÇÑ´Ù´Â..). ½Ã°£ÀÌ ³ª½Ã´Â ºÐÀº ¼Ò½º¸¦ ºÐ¼®ÇØ º¸´Â °Íµµ ³ª»ÚÁö ¾Ê°Ú½À´Ï´Ù. ¸¸ÀÏ, ¼Ò½º¸¦ »ìÆìº»´Ù¸é °³³äÀûÀ¸·Î´Â ÀÌÀü °ÁÂÀÎ XMLHTTP ÄÄÆ÷³ÍÆ®¸¦ ÀÌ¿ëÇß´ø ¹æ½Ä°ú Å©°Ô ´Ù¸£Áö ¾Ê´Ù´Â °ÍÀ» ¾Ë ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. Áï, XMLHTTP¸¦ ÀÌ¿ëÇÏ´Â °ÍÀ» Á¶±Ý ´õ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÄÄÆ÷³ÍÆ®¿Í ½ÃÄѳõÀº °ÍÀÌ ¹Ù·Î webservice.htc¶ó´Â °ÍÀ» ¾Ë ¼ö ÀÖÁÒ.
ÀÌ¹Ì XMLHTTPÀÇ »ç¿ë¹ýÀ» ¾Ë°í ÀÖ´Â ¿©·¯ºÐµéÀº ±× ³»ºÎÀÇ Ã³¸®¹æ½Äµµ ÀÌÇØÇÏ°í °è½Ç °ÍÀ̱⿡ webservice.htc°¡ ¹º°¡ »õ·Ó°í, Çõ½ÅÀûÀÎ °ÍÀº ¾Æ´Ï¶ó´Â °Íµµ ´«Ä¡Ã¤°í °è½Ç °ÍÀÔ´Ï´Ù. ´ÜÁö, XMLHTTP¸¦ »ç¿ëÇØ¼ ºñ µ¿±â È£ÃâÇϱâ À§ÇÑ ·ÎÁ÷µéÀ» ½¬¿î ÀÎÅÍÆäÀ̽º·Î Á¦°øÇØÁÖ´Â ÀÏÁ¾ÀÇ ·¦ÆÛ(wrapper)¶ó´Â °ÍÀ» À̳» ´«Ä¡Ã¤½Ç ¼ö ÀÖÀ» °ÍÀ̶ó´Â À̾߱âÁÒ. ¶ÇÇÑ, ¼ö½ÅµÈ XML µ¥ÀÌÅ͸¦ »ç¿ëÇϱ⠽±°Ô Àç ±¸¼ºÇØ ÁÖ´Â ±â´Éµµ ³»ÀåÇϰí ÀÖ°í ¸»ÀÌÁÒ.
±×·¸´Ù¸é, ÀÌÁ¦ Çѹø ÇØ º¸ÁÒ. webservice.htc¸¦ ÀÌ¿ëÇØ¼ ½±°Ô ºñµ¿±â È£ÃâÀ» ÇÏ´Â ¹æ¹ý¿¡ ´ëÇØ¼ ¸»ÀÔ´Ï´Ù. ^^
webservice.htc´Â ±× À̸§ÀÌ ¸»ÇØÁÖµíÀÌ ¼¹ö Ãø ¸ðµâ·Î À¥ ¼ºñ½º¸¦ ÀÌ¿ëÇØ¾ß ÇÕ´Ï´Ù. ±×·¸±â¿¡, ¹«¾ùº¸´Ù ¸ÕÀú ¼¹ö ÂÊÀÇ À¥ ¼ºñ½º°¡ ÁغñµÇ¾î¾ß ÇϰÚÁÒ?
¿©·¯ºÐÀÌ °¡Áö°í ÀÖ´Â À¥ ÇÁ·ÎÁ§Æ®¸¦ ¾Æ¹« °ÍÀ̳ª ¿¾îµµ ÁÁ½À´Ï´Ù. À¥ ÇÁ·ÎÁ§Æ®°¡ ÁغñµÇ¾ú´Ù¸é ±× ·çÆ®¿¡ ´ÙÀ½°ú °°ÀÌ Employee.asmx¶ó´Â À¥ ¼ºñ½º ÆÄÀÏÀ» Çϳª ¸¸µé¾î º¸µµ·Ï ÇØ¿ä. ¿¹Á¦¿ë À¥ ¼ºñ½ºÀ̱⿡ ¸Å¿ì °£´ÜÇÑ ¼öÁØÀ¸·Î ¸¸µé¾î º¼±î ÇÕ´Ï´Ù. Áï, ÀÌÀü °Á¿¡¼ Çß´ø °Íó·³ »ç¹øÀ» ÀÔ·ÂÇÏ¸é »ç¿øÀÇ Á¤º¸¸¦ °¡Á®¿À´Â ±× ·ÎÁ÷À» À¥ ¸Þ¼µå·Î Àç ±¸¼ºÇغ¸·Á ÇÕ´Ï´Ù. ^^. Employee.asmx ÆÄÀÏÀ» ¸¸µé¾ú´Ù¸é ±× ¾È¿¡ ´ÙÀ½°ú °°ÀÌ Äڵ带 ¸¸µé¾î º¸µµ·Ï ÇϰڽÀ´Ï´Ù.
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Web;
using System.Web.Services;
namespace CallbackEx
{
/// <summary>
/// Employee¿¡ ´ëÇÑ ¿ä¾à ¼³¸íÀÔ´Ï´Ù.
/// </summary>
public class Employee : System.Web.Services.WebService
{
[WebMethod]
public string[] GetEmpByEmpID(int empID)
{
string[] info = {"", "", "", "", ""};
string strCon = "server=(local);database=Northwind;uid=sa;pwd=***";
string sql = " SELECT LastName, FirstName, Title, BirthDate, City FROM Employees "
+ " WHERE EmployeeID = @empID";
SqlConnection con = new SqlConnection(strCon);
SqlCommand cmd = new SqlCommand(sql, con);
cmd.Parameters.Add("@empID", SqlDbType.Int);
cmd.Parameters["@empID"].Value = empID;
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
if(reader.Read())
{
info[0] = reader[0].ToString();
info[1] = reader[1].ToString();
info[2] = reader[2].ToString();
info[3] = reader[3].ToString();
info[4] = reader[4].ToString();
}
reader.Close();
con.Close();
return info;
}
}
}
|
ÄÚµå´Â ±×¸® ¾î·ÆÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù. ÀÌÀü °Á¿¡¼ ´Ù·é ÄÚµå¿Í À¯»çÇϱ⠶§¹®ÀÌÁÒ. GetEmpByEmpID¶ó´Â À¥ ¸Þ¼µå´Â empID¶ó´Â »ç¹øÀ» ¹Þ¾Æ¼ Äõ¸®¸¦ ¼öÇàÇϰí, ÇØ´ç Á÷¿øÀÇ ¸î¸î Á¤º¸¸¦ string ¹è¿·Î ¹ÝȯÇÏ´Â ¿ªÇÒÀ» ÇÕ´Ï´Ù.
À¥ ¸Þ¼µå´Â ¹®ÀÚ¿ ¹è¿À» ¹ÝȯÇÏÁö¸¸, ÀÌ µ¥ÀÌÅÍ´Â ASP.NET¿¡ ÀÇÇØ ÀÚµ¿À¸·Î XML serializationÀÌ µÇ¾î¼ ´ÙÀ½°ú °°Àº Çü½ÄÀÇ XML ±¸Á¶·Î µ¥ÀÌÅ͸¦ ¹ÝȯÇÏ°Ô µÉ °ÍÀÔ´Ï´Ù.
<?xml version="1.0" encoding="utf-8" ?>
<ArrayOfString xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<string>Fuller</string>
<string>Andrew</string>
<string>Vice President, Sales</string>
<string>1952-02-19 ¿ÀÀü 12:00:00</string>
<string>Tacoma</string>
</ArrayOfString>
|
¸¸ÀÏ, ¼¹ö ¸ðµâÀ» asp³ª aspx·Î ¸¸µé¾ú´Ù¸é ÀÌ·¯ÇÑ XML ±¸Á¶¸¦ Á÷Á¢ ¼öµ¿À¸·Î ±¸¼ºÇØÁÖ¾î¾ß ÇϰÚÁö¸¸, À¥ ¼ºñ½º¸¦ ÀÌ¿ëÇÏ¸é ¾Ë¾Æ¼ ÀÌ·¯ÇÑ Æ÷¸ËÀÌ ¸¸µé¾îÁö´Ï ÂüÀ¸·Î ÆíÇÏÁÒ ^^. ±×°Ô ASP.NET À¥ ¼ºñ½ºÀÇ ÀåÁ¡ÀÌ ¾Æ´Ï°Ú½À´Ï±î?
ÀÚ. Áغñ°¡ ´Ù µÇ¾ú´Ù¸é, Á¦ÀÛÇÑ À¥ ¼ºñ½º ÆÄÀÏÀÎ employee.asmx¸¦ ½ÇÇàÇØ º¸µµ·Ï ÇÏÁÒ. ±×·¯¸é, ÇϳªÀÇ ¸Þ¼µå(GetEmpByEmpID)¸¸À» °®´Â Å×½ºÆ® ÆäÀÌÁö°¡ ³ª¿Ã °ÍÀ̰í, ±× ¸Þ¼µå¸¦ Ŭ¸¯Çϸé, ´ÙÀ½°ú °°Àº ¸Þ¼µå Å×½ºÆ® ÆäÀÌÁö°¡ ³ªÅ¸³³´Ï´Ù.
¿©±â¿¡ »ç¹øÀ¸·Î 1À» ÀÔ·ÂÇÏ°í ½ÇÇàÇÏ¸é ´ÙÀ½°ú °°Àº °á°ú°¡ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù.
¿¹»ó´ë·Î Á¦´ë·Î µÈ °á°ú°¡ ¸Úµé¾îÁö°Ô ³ªÅ¸³ª°í ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÁÒ? ÀÚ. ¿©±â±îÁöÀÇ °á°ú°¡ ¹«³ÇÏ°Ô ³ª¿Ô´Ù¸é ¼¹ö ¸ðµâÀº ¿Ï¼ºµÇ¾ú´Ù°í °¡Á¤ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ±×·¸´Ù¸é, ÀÌÁ¦ ÀÌ À¥ ¼ºñ½º¸¦ ÀÌ¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®¿ë ÆäÀÌÁö¸¦ ¸¸µé¾î¾ß ÇϰÚÁÒ? (»ç½Ç ÀÌ ºÎºÐÀÌ À̹ø °ÁÂÀÇ ÇÙ½ÉÀ̶ó ÇÒ ¼ö ÀÖ°ÚÁÒ~)
±×·¸´Ù¸é, ÀÌÁ¦ Çѹø ¸¸µé¾î º¸°Ú½À´Ï´Ù. webservice.htc¸¦ ÀÌ¿ëÇØ¼ ºñµ¿±â È£ÃâÀ» ÇÏ´Â ÆäÀÌÁö¸¦ ¸»ÀÔ´Ï´Ù. ÀÌ ÆäÀÌÁö´Â ¾îÂ÷ÇÇ ±¸µ¿ÇÏ´Â ÂÊÀÌ Å¬¶óÀ̾ðÆ®À̱⿡ aspx¿Í °°Àº ¼¹ö ÆäÀÌÁö·Î Á¦ÀÛÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ±×³É html ÆäÀÌÁö·Î Á¦ÀÛÇØµµ µ¿ÀÛÇÏ´Â µ¥¿¡´Â ¾Æ¹«·± ¹«¸®°¡ ¾ø´Ù´Â °ÍÀÌÁÒ. ÇØ¼, ¸¸µé¾î º¸¾Ò½À´Ï´Ù.
<html>
<head>
<Script language="JavaScript">
function RaiseCallback()
{
var wsdl = "http://localhost/CallbackTest/MyWebServices/Employee.asmx?WSDL";
var params = document.all.EmpID.value;
MyWs.useService(wsdl,"EmpService");
MyWs.EmpService.callService(ProcessResult, "GetEmpByEmpID", params);
}
function ProcessResult(result)
{
var vals = result.value;
document.all.LastName.value = vals[0];
document.all.FirstName.value = vals[1];
document.all.Title.value = vals[2];
document.all.BirthDate.value = vals[3];
document.all.City.value = vals[4];
}
</Script>
<LINK href="../Styles.css" type="text/css" rel="stylesheet">
</head>
<body>
<div id="MyWs" style="BEHAVIOR:url('WebService.htc')" />
<p>
<table cellpadding="3">
<tr>
<td align="center">»ç¹ø</td>
<td><input id="EmpID" NAME="EmpID"
onchange="RaiseCallback();"></td>
</tr>
<tr height="1" bgcolor="silver">
<td colspan="2"></td>
</tr>
<tr>
<td align="center" width="80">À̸§</td>
<td width="200"><input id="LastName" name="LastName"></td>
</tr>
<tr>
<td align="center">¼º</td>
<td><input id="FirstName" name="FirstName"></td>
</tr>
<tr>
<td align="center">Á÷±Þ</td>
<td><input id="Title" name="Title"></td>
</tr>
<tr>
<td align="center">»ýÀÏ</td>
<td><input id="BirthDate" name="BirthDate"></td>
</tr>
<tr>
<td align="center">µµ½Ã</td>
<td><input id="City" name="City"></td>
</tr>
</table>
</p>
<p>WebService Behavior <a href="http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/samples/internet/behaviors/library/webservice/default.asp"
target="_blank">WebService Behavior Link</a>
</p>
</body>
</html>
|
Ŭ¶óÀÌ¾ðÆ® ¼Ò½º¿¡¼ Áß¿äÇÑ ºÎºÐÀº WebService.htc¸¦ ÆäÀÌÁö¿¡ »ðÀÔÇÏ´Â ºÎºÐÀÎ ´ÙÀ½ ÄÚµåÀÔ´Ï´Ù.
|
<div id="MyWs" style="BEHAVIOR:url('WebService.htc')" />
|
ÀÌ Äڵ带 »ðÀÔÇÔÀ¸·Î½á ÀÌÁ¦ WebService.htc ÄÄÆ÷³ÍÆ®¸¦ MyWs¶ó´Â À̸§À¸·Î »ç¿ëÇÒ ¼ö°¡ ÀÖ°Ô µË´Ï´Ù.
ÄÚµå´ë·Î¶ó¸é, WebService.htc ÆÄÀÏÀÇ À§Ä¡´Â Client.htm ÆÄÀÏÀÌ ³õ¿©Á® ÀÖ´Â µ¿ÀÏ Æú´õ ¾È¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
¸¸ÀÏ, ±× °æ·Î°¡ ´Ù¸£´Ù¸é, ¿¹¸¦ µé¾î sc¶ó´Â ÇÏÀ§ Æú´õ¿¡ htc ÆÄÀÏÀÌ À§Ä¡ÇÑ´Ù¸é BEHAVIOR:url('WebService.htc') ´ë½Å,
BEHAVIOR:url('sc/WebService.htc')¿Í °°ÀÌ ÁöÁ¤µÇ¾î¾ß ÇÒ °ÍÀÔ´Ï´Ù.
¿¹Á¦ ÀÚü´Â ÀÌÀü °ÁÂ(XMLHTTP)ÀÇ °Í°ú µ¿ÀÏÇÕ´Ï´Ù. Áï, »ç¹øÀ» ÅØ½ºÆ®¹Ú½º¿¡ ÀÔ·ÂÇÏ°í Æ÷Ä¿½º¸¦ ¿Å±â¸é ±× ¶§ ºñµ¿±â È£ÃâÀÌ ÀÌ·ç¾îÁ®¼ »ç¿ëÀÚ Á¤º¸¸¦ ¼¹ö·ÎºÎÅÍ °¡Á®¿À°Ô µÇ´Â °ÍÀÌÁÒ.
»ç¹ø ¿ë ÅØ½ºÆ®¹Ú½ºÀÇ HTML ű׸¦ º¸½Ã¸é ´ÙÀ½°ú °°ÀÌ onchange À̺¥Æ® ½Ã¿¡ RaiseCallback ¸Þ¼µå¸¦ È£ÃâÇÏ´Â Äڵ带 º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ÇÔ¼ö¸íÀÌ¾ß ¿©·¯ºÐÀÌ ¿øÇÏ´Â ´ë·Î ÁÙ ¼ö ÀÖ°ÚÁö¸¸, Àú´Â ±×·² µí ÇØ º¸ÀÌ´Â À̸§ÀÎ RaiseCallbackÀ» »ç¿ëÇØ º¸¾Ò½À´Ï´Ù. ±×¸®°í, ±× ÇÔ¼ö´Â ´ÙÀ½°ú °°Àº ÄÚµå·Î ±¸¼ºµÇ¾î ÀÖ¾î¿ä.
function RaiseCallback()
{
var wsdl = "http://localhost/CallbackTest/MyWebServices/Employee.asmx?WSDL";
var params = document.all.EmpID.value;
MyWs.useService(wsdl,"EmpService");
MyWs.EmpService.callService(ProcessResult, "GetEmpByEmpID", params);
}
|
WebService.htc¸¦ ÅëÇØ¼ ºñµ¿±âÀûÀ¸·Î À¥ ¼ºñ½º¸¦ È£ÃâÇϱâ À§Çؼ´Â ÃÑ 3°¡Áö Á¤µµÀÇ Á¤º¸°¡ ÇÊ¿äÇÕ´Ï´Ù. ±×µéÀº ´ë·« ´ÙÀ½°ú °°¾Æ¿ä
1. ºñµ¿±â È£ÃâÀÇ ´ë»óÀÌ µÉ À¥ ¼ºñ½ºÀÇ wsdl °æ·Î
2. È£ÃâÇÒ À¥ ¸Þ¼µåÀÇ ¸íĪ
3. È£ÃâÇÒ À¥ ¸Þ¼µå°¡ ÇÊ¿ä·Î ÇÏ´Â ¸Å°³º¯¼ö ÀÎÀÚ°ª
ÇØ¼, Äڵ忡¼´Â wsdlÀ̶ó´Â º¯¼ö¿¡ ºñ µ¿±â Åë½ÅÀÇ ´ë»óÀÌ µÉ À¥ ¼ºñ½ºÀÇ wsdl °æ·Î¸¦ ÁöÁ¤Çϰí ÀÖ±¸¿ä. params¶ó´Â º¯¼ö¿¡´Â ÀÎÀÚ·Î ³Ñ±æ ¸Å°³º¯¼ö °ªÀ» ÁöÁ¤ÇØ µÎ°í ÀÖ½À´Ï´Ù. ÀÌ´Â ´ç¿¬È÷ »ç¹øÀÌ µÇ°ÚÁÒ?
WebService.htc ÄÄÆ÷³ÍÆ®ÀÇ ÇÙ½É ¸Þ¼µå´Â Å©°Ô 2°¡Áö ÀÔ´Ï´Ù. À¥ ¼ºñ½º¿ÍÀÇ ¿¬°áÁ¤º¸¸¦ ±¸¼ºÇÏ´Â useService¶ó´Â ¸Þ¼µå¿Í ½ÇÁúÀûÀÎ À¥ ¸Þ¼µå È£ÃâÀ» ¼öÇàÇÏ´Â callService°¡ ¹Ù·Î ±×°ÍÀÔ´Ï´Ù. ÀÌ ¸Þ¼µåµéÀÇ ±¸Ã¼ÀûÀÎ »ç¿ë¹æ¹ý°ú ±× ¿ÜÀÇ ´Ù¸¥ ¸Þ¼µåµéÀÇ Á¤º¸´Â ´ÙÀ½ ·¹ÆÛ·±½º¸¦ Âü°íÇϽñ⠹ٶø´Ï´Ù.
WebService behavior ÂüÁ¶ ·¹ÆÛ·±½º
http://msdn.microsoft.com/library/?url=/workshop/author/webservice/webservice.asp
°¡Àå Áß¿äÇÑ ¸Þ¼µåÀÎ useService´Â 2°³ÀÇ ÀÎÀÚ¸¦ ¹Þ´Âµ¥¿ä. ù ¹øÂ° ÀÎÀÚ´Â ºñ µ¿±â Åë½ÅÀÇ ´ë»óÀÌ µÉ À¥ ¼ºñ½ºÀÇ wsdl °æ·ÎÀÔ´Ï´Ù. ±×¸®°í, µÎ ¹øÂ° ÀÎÀÚ´Â ±× À¥ ¼ºñ½º¸¦ ¾î¶°ÇÑ À̸§À¸·Î »ç¿ëÇÒ °ÍÀÎÁö ÀÚ½ÅÀÌ »ç¿ëÇÏ±â ÆíÇÑ º°¸íÀ» ÁÖ´Â °ÍÀÔ´Ï´Ù. ±×¸®°í, ÀÌ º°¸íÀº ½ÇÁ¦ À¥ ¼ºñ½º¸¦ È£ÃâÇÒ ¶§ »ç¿ëÇÏ°Ô µÇÁö¿ä. ÀÌÇØ¸¦ µ½±â À§Çؼ ¼Ò½º¸¦ º¸°Ú½À´Ï´Ù.
MyWs.useService(wsdl,"EmpService");
MyWs.EmpService.callService(ProcessResult, "GetEmpByEmpID", params);
|
¼Ò½ºÀÇ Ã¹ ¶óÀο¡¼´Â useService ¸Þ¼µå¸¦ ÀÌ¿ëÇØ¼, ù ¹øÂ° ÀÎÀڷδ wsdl °æ·Î¸¦ ÁÖ°í ÀÖ±¸¿ä. µÎ ¹øÂ° ÀÎÀڷδ ¡°EmpService¡±¶ó´Â ¹®ÀÚ¿À» ÁÖ°í ÀÖ½À´Ï´Ù. ÀÌ´Â ÇØ´ç À¥ ¼ºñ½º¸¦ EmpService¶ó´Â À̸§À¸·Î Â÷ÈÄ ÀÌ¿ëÇϰڴٴ °ÍÀ» ÀǹÌÇÕ´Ï´Ù.
ÇØ¼, µÎ ¹øÂ° ¶óÀÎÀÇ ¼Ò½º¸¦ º¸½Ã¸é MyWs.EmpService.. ¿Í °°ÀÌ ±× À̸§ÀÌ »ç¿ëµÇ°í ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖ½À´Ï´Ù. ^^ ¸¸ÀÏ, useService ¸Þ¼µåÀÇ µÎ ¹øÂ° ÀÎÀÚ·Î taeyoService¶ó´Â °ªÀ» Á̴ּٸé, µÎ ¹øÂ° ¶óÀÎÀÇ ¼Ò½ºµµ MyWs.TaeyoService.. ¿Í °°ÀÌ ¹Ù²î¾î¾ß ÇϰÚÁÒ?
±×¸®°í, µÎ ¹øÂ° ¶óÀο¡¼´Â callService¶ó´Â ¸Þ¼µå¸¦ È£ÃâÇϰí ÀÖ½À´Ï´Ù. À̰ÍÀÌ ½ÇÁúÀûÀ¸·Î ƯÁ¤ À¥ ¸Þ¼µå¸¦ È£ÃâÇÏ´Â °ÍÀä. ù ¹øÂ° ÀÎÀڷδ ÄݹéÀ» ¹ÞÀ» ÇÔ¼ö¸í(Àá½Ã µÚ¿¡ ¼³¸íÇÕ´Ï´Ù)À» ÁöÁ¤ÇØ ÁÖ½Ã¸é µÇ°í, µÎ ¹øÂ° ÀÎÀڷδ »ç¿ëÇÒ À¥ ¸Þ¼µåÀÇ À̸§, ¼¼ ¹øÂ° ÀÎÀڷδ À¥ ¸Þ¼µå ¼öÇà¿¡ ÇÊ¿äÇÑ ¸Å°³º¯¼ö °ªÀ» ÁöÁ¤ÇØ ÁÖ¸é µË´Ï´Ù.
ù ¹øÂ° ÀÎÀÚ·Î ÁöÁ¤ÇÏ´Â Äݹé ÇÔ¼ö¸íÀº ¹«¾ùÀ̳Ä? ¹Ù·Î ºñ µ¿±â È£ÃâÀÇ °á°ú¸¦ ¹ÞÀ» ÇÔ¼ö¸íÀ» ¸»ÇÕ´Ï´Ù. Áï, ºñ µ¿±â È£ÃâÀÌ ³¡³ µÚ, ±× È£ÃâÀÇ °á°ú°ªÀ» ¹Þ¾Æ¼ ó¸®ÇÒ ÇÔ¼ö¸¦ ¸»ÇÑ´Ù´Â °ÍÀÌÁÒ. ¼Ò½º¿¡¼´Â ±× °ªÀ¸·Î ProcessResult¸¦ ÁÖ¾ú±¸¿ä. Àüü ¼Ò½º¸¦ ´Ù½Ã º¸½Ã¸é, ¹Ù·Î ¹Ø¿¡ ±× ÇÔ¼ö°¡ Á¤ÀǵǾî ÀÖ´Â °ÍÀ» º¸½Ç ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ ¸»ÀÌÁÒ.
function ProcessResult(result)
{
var vals = result.value;
document.all.LastName.value = vals[0];
document.all.FirstName.value = vals[1];
document.all.Title.value = vals[2];
document.all.BirthDate.value = vals[3];
document.all.City.value = vals[4];
}
|
ProcessResult ÇÔ¼ö´Â result¶ó´Â ÀÎÀÚ¸¦ Çϳª °®´Âµ¥¿ä. ¹Ù·Î Àú ÀÎÀڷΠȣÃâÀÇ °á°ú°ªÀÌ ³Ñ¾î¿É´Ï´Ù. ´©°¡ ±× °ªÀ» ³Ñ°ÜÁֳİí¿ä? ±× ¿ªÇÒ ¸ðµÎ¸¦ WebService.htc °¡ ÇØÁÖ´Â °ÍÀÔ´Ï´Ù. ^^
½ÇÁ¦ È£Ãâ °á°ú °ªÀº result¶ó´Â °³Ã¼ º¯¼öÀÇ value¶ó´Â ¼Ó¼ºÀ» ÅëÇØ¼ ¾ò¾î³¾ ¼ö ÀÖ½À´Ï´Ù. ÇØ¼ ¸¸ÀÏ, ¼¹ö¿¡¼ °á°ú°ªÀ¸·Î ¹®ÀÚ¿ ¹è¿À» ³Ñ°ÜÁشٸé result.value´Â ¹®ÀÚ¿ ¹è¿ÀÏ °ÍÀ̰í¿ä. ¼¹ö¿¡¼ È£Ãâ °á°ú°ªÀ¸·Î Boolean °ªÀ» ³Ñ°ÜÁشٸé result.value´Â ºÒ¸° °ªÀÏ °ÍÀÔ´Ï´Ù. ^^
¿ì¸®ÀÇ °æ¿ì´Â ±× °ªÀÌ ¹®ÀÚ¿ ¹è¿ÀÌ´Ï, ¼Ò½º¿¡¼´Â ±× °ªÀ» ¹è¿Çü½ÄÀ¸·Î ÀÐ¾î¼ °¢°¢¿¡ ÇØ´çÇÏ´Â ÄÁÆ®·Ñ¿¡ ³Ö¾îÁÖ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¸Å¿ì ½±ÁÒ?
±×·³, Çѹø ½ÇÇàÇØ º¼±î¿ä?
±×·¸½À´Ï´Ù. WebService.htc¸¦ ÀÌ¿ëÇϸé ÀÌÅä·Ï ÀûÀº ÄÚµå·Î ½±°Ô ºñ µ¿±â È£ÃâÀ» ±¸ÇöÇÒ ¼ö ÀÖ´Â °ÍÀÔ´Ï´Ù.
ºñ µ¿±â È£ÃâÀ» ÇÏ´Â ¾à 2ÁÙ(useService¿Í callService)ÀÇ ÄÚµå¿Í °á°ú°ªÀ» ¹Þ¾Æ¼ ó¸®ÇÒ ÇÔ¼ö Çϳª¸¦ ¸¸µé¸é ±×°ÍÀÌ ÀüºÎ¶ó´Â °ÍÀÌÁÒ. Àç¹ÌÀÖÁö ¾Ê³ª¿ä?
ºñ·Ï WebService.htc°¡ DataSet°ú °°Àº º¹ÀâÇÑ ±¸Á¶ÀÇ Çü½ÄÀº Áö¿øÇÏÁö ¾Ê´Â´Ù´Â ¾Æ½¬¿òÀÌ ÀÖ±ä ÇÏÁö¸¸, ±×·±´ë·Î »ç¿ëÇÏ´Â µ¥¿¡ Å« ºÒÆíÀº ¾øÀ» °ÍÀÔ´Ï´Ù. ¾î¶²°¡¿ä? ÀÌÀü °Áº¸´Ù´Â È®½ÇÈ÷ »ç¿ëÇϱⰡ ½±ÁÒ? ÇÏÇÏÇÏ
ÀÚ. ±×·³ ÀÌÁ¦ Àú´Â ´ÙÀ½ °Á¸¦ ÁغñÇÏ·¯ ¶Ç ¿©Çà(?)À» ¶°³ªº¸µµ·Ï ÇϰڽÀ´Ï´Ù. ´ÙÀ½ °Á´ ASP.NET 2.0¿¡¼ »õ·ÎÀÌ Á¦°øµÇ´Â ÄÝ¹é ±â´ÉÀ» ¼³¸íÇÏ´Â °ÁÂÀÔ´Ï´Ù. ´ë¸Á(?)ÀÇ AJAX´Â ±× ´ÙÀ½ °Á¿¡¼ ´Ù·ç¾î º¼±î ÇÕ´Ï´Ù.
±× µ¿¾È ¸ðµÎ¸ðµÎ ÁÁÀº ÇÏ·ç µÇ¼¼¿ä.
°Á ¸ñ·ÏÀ¸·Î..
|