SOAP

SOAP(Simple Object Access Protocol)์€ ์›น ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ ํ”„๋กœํ† ์ฝœ์ž…๋‹ˆ๋‹ค. XML ๊ธฐ๋ฐ˜์˜ ๋ฉ”์‹œ์ง€ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์—ฌ, ์„œ๋กœ ๋‹ค๋ฅธ ํ”Œ๋žซํผ ๋ฐ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SOAP์˜ ๊ตฌ์„ฑ ์š”์†Œ

  1. Envelope: ๋ชจ๋“  SOAP ๋ฉ”์‹œ์ง€๋Š” Envelope๋กœ ์‹œ์ž‘ํ•˜๋ฉฐ, ์ด๊ฒƒ์€ SOAP ๋ฉ”์‹œ์ง€์˜ ์‹œ์ž‘๊ณผ ๋์„ ํ‘œ์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  2. Header: Header ์š”์†Œ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ์ถ”๊ฐ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ธ์ฆ ์ •๋ณด, ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ ์ •๋ณด ๋“ฑ์ด ํ—ค๋”์— ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  3. Body: Body ์š”์†Œ๋Š” ์‹ค์ œ ๋ฉ”์‹œ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋ฉ”์†Œ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜ ๊ฐ’์ด ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  4. Fault: ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, Fault ์š”์†Œ๊ฐ€ ์‚ฌ์šฉ๋˜์–ด ์ƒ์„ธํ•œ ์˜ค๋ฅ˜ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SOAP ๋ฉ”์‹œ์ง€ ์˜ˆ์ œ

์•„๋ž˜๋Š” ๊ฐ„๋‹จํ•œ SOAP ๋ฉ”์‹œ์ง€ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

xmlCopy code<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <authenticationToken xmlns="http://example.com">TOKEN</authenticationToken>
  </soap:Header>
  <soap:Body>
    <getWeather xmlns="http://example.com">
      <city>New York</city>
    </getWeather>
  </soap:Body>
</soap:Envelope>

์œ„ ์˜ˆ์ œ์—์„œ๋Š” getWeather ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  "New York"์ด๋ผ๋Š” ๋„์‹œ์— ๋Œ€ํ•œ ๋‚ ์”จ ์ •๋ณด๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ธ์ฆ ํ† ํฐ์ด ํ—ค๋”์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

WSDL (Web Services Description Language)

WSDL์€ ์›น ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” XML ๊ธฐ๋ฐ˜์˜ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. WSDL ๋ฌธ์„œ๋Š” ์›น ์„œ๋น„์Šค์˜ ๋ฉ”์†Œ๋“œ, ๋งค๊ฐœ๋ณ€์ˆ˜, ๋ฐ˜ํ™˜ ๊ฐ’ ๋“ฑ์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์„œ๋น„์Šค๋ฅผ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ํŠน์ •ํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ WSDL ๋ฌธ์„œ๋ฅผ ํ† ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

wsimport

wsimport๋Š” Java ํ”Œ๋žซํผ์—์„œ ์›น ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์›น ์„œ๋น„์Šค์˜ WSDL(Web Services Description Language) ๋ฌธ์„œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž๋™์œผ๋กœ Java ์›น ์„œ๋น„์Šค ํด๋ผ์ด์–ธํŠธ ์Šคํ…์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ์Šคํ…์„ ์‚ฌ์šฉํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž๋Š” ์›น ์„œ๋น„์Šค์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋กœ์šฐ-๋ ˆ๋ฒจ์˜ ์ฝ”๋“œ ์ž‘์„ฑ์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๋ฐฉ๋ฒ•

wsimport ๋„๊ตฌ๋Š” Java Development Kit(JDK)์— ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ปค๋งจ๋“œ ๋ผ์ธ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

cssCopy codewsimport [options] <WSDL_URI>

์—ฌ๊ธฐ์„œ options๋Š” ๋‹ค์–‘ํ•œ ์„ค์ • ์˜ต์…˜์„ ๋‚˜ํƒ€๋‚ด๊ณ , <WSDL_URI>๋Š” ์›น ์„œ๋น„์Šค์˜ WSDL ๋ฌธ์„œ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ์˜ต์…˜

  • -d <directory>: ์ƒ์„ฑ๋œ ํด๋ž˜์Šค ํŒŒ์ผ์ด ์ €์žฅ๋  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • -s <directory>: ์ƒ์„ฑ๋œ ์†Œ์Šค ํŒŒ์ผ์ด ์ €์žฅ๋  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • -p <package>: ์ƒ์„ฑ๋œ ํด๋ž˜์Šค ํŒŒ์ผ์— ๋Œ€ํ•œ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • -keep: ์ƒ์„ฑ๋œ ์†Œ์Šค ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ํด๋ž˜์Šค ํŒŒ์ผ๋„ ์œ ์ง€ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

  • -verbose: ๋„๊ตฌ์˜ ์‹คํ–‰ ๊ณผ์ •์—์„œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค.

E.g

wsimport -d generated_classes -s generated_sources -p com.example.webservice -keep -verbose http://example.com/yourwebservice?wsdl

์œ„ ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

-d generated_classes: ์ƒ์„ฑ๋œ ํด๋ž˜์Šค ํŒŒ์ผ์„ generated_classes ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
-s generated_sources: ์ƒ์„ฑ๋œ ์†Œ์Šค ํŒŒ์ผ์„ generated_sources ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
-p com.example.webservice: ์ƒ์„ฑ๋œ ํด๋ž˜์Šค ํŒŒ์ผ์˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ com.example.webservice๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
-keep: ์ƒ์„ฑ๋œ ์†Œ์Šค ํŒŒ์ผ๊ณผ ํด๋ž˜์Šค ํŒŒ์ผ์„ ๋ชจ๋‘ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
-verbose: ์‹คํ–‰ ๊ณผ์ •์—์„œ ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
http://example.com/yourwebservice?wsdl: ์›น ์„œ๋น„์Šค์˜ WSDL ๋ฌธ์„œ URL์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

Last updated