{"id":16799,"date":"2018-03-02T09:00:42","date_gmt":"2018-03-02T00:00:42","guid":{"rendered":"http:\/\/www.techscore.com\/blog\/?p=16799"},"modified":"2018-11-14T16:33:41","modified_gmt":"2018-11-14T07:33:41","slug":"soap-web%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e5%86%8d%e6%b4%bb%e7%94%a8%e3%81%ae%e3%82%b9%e3%82%b9%e3%83%a1","status":"publish","type":"post","link":"https:\/\/www.techscore.com\/blog\/2018\/03\/02\/soap-web%e3%82%b5%e3%83%bc%e3%83%93%e3%82%b9%e5%86%8d%e6%b4%bb%e7%94%a8%e3%81%ae%e3%82%b9%e3%82%b9%e3%83%a1\/","title":{"rendered":"SOAP Web\u30b5\u30fc\u30d3\u30b9\u518d\u6d3b\u7528\u306e\u30b9\u30b9\u30e1"},"content":{"rendered":"
<\/p>\n
(Petr Kratochvil<\/a> \/ CC0 Public Domain<\/a>)<\/span><\/p>\n \u3053\u3093\u306b\u3061\u306f\u3001\u521d\u6295\u7a3f\u306e\u5409\u7530\u3067\u3059\u3002\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\u3002<\/p>\n Java SE 8\u306e\u30b5\u30dd\u30fc\u30c8\u516c\u5f0f\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306e\u7d42\u4e86\u901a\u77e5\u304c\u3042\u3063\u305f\u306e\u3067\u3001\u305d\u308d\u305d\u308d\u65e2\u5b58\u30b7\u30b9\u30c6\u30e0\u306e\u30ea\u30d7\u30ec\u30fc\u30b9\u304c\u8a71\u984c\u306b\u306a\u3063\u3066\u304f\u308b\u9803\u3067\u3059\u306d\u3002\u65b0\u3057\u3044\u4ed5\u7d44\u307f\u3092\u518d\u69cb\u7bc9\u3059\u308b\u306e\u304b\u3001\u30b7\u30b9\u30c6\u30e0\u8cc7\u7523\u3092\u5ef6\u547d\u3059\u308b\u306e\u304b\u3001\u3068\u3044\u3063\u305f\u691c\u8a0e\u3092\u59cb\u3081\u3066\u3044\u308b\u65b9\u3082\u591a\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n \u4eca\u56de\u306f\u3001\u300cSOAP Web\u30b5\u30fc\u30d3\u30b9\u3092\u4eca\u98a8\u306b\u518d\u69cb\u7bc9\u3059\u308b\u300d\u3068\u3044\u3046\u5224\u65ad\u3092\u3059\u308b\u524d\u306b\u3001\u30bf\u30a4\u30c8\u30eb\u306b\u3042\u308b\u3068\u304a\u308a\u73fe\u5728\u306e\u904b\u7528\u3067\u65e2\u5b58\u8cc7\u7523\u306e\u4fa1\u5024\u3092\u9ad8\u3081\u3089\u308c\u306a\u3044\u304b\u3092\u63a2\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002 <\/p>\n \u3053\u306e\u6295\u7a3f\u306b\u8208\u5473\u3092\u6301\u3063\u3066\u3044\u305f\u3060\u3044\u305f\u65b9\u306f\u300cSOAP\u3063\u3066\u4f55\uff1f\u300d\u3068\u3044\u3046\u4e8b\u306f\u7121\u3044\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u3001\u7c21\u5358\u306b\u304a\u3055\u3089\u3044\u3067\u3059\u3002<\/p>\n SOAP\u306f\u3001\u30b7\u30b9\u30c6\u30e0\u6a5f\u80fd\u3092\u30d7\u30ed\u30bb\u30b9\u3084OS\u3092\u8d85\u3048\u3066\u30b5\u30fc\u30d3\u30b9\u3068\u3057\u3066\u63d0\u4f9b\u3067\u304d\u308b\u3088\u3046\u306b\u69cb\u6210\u3055\u308c\u305f\u30d7\u30ed\u30c8\u30b3\u30eb\u3067\u3001\u5c11\u3057\u524d\u306f\u3088\u304f\u5229\u7528\u3055\u308c\u3066\u3044\u307e\u3057\u305f\u3002 \u3053\u308c\u307e\u3067Java SE\u306b\u306fSOAP Web\u30b5\u30fc\u30d3\u30b9\u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\uff08\u30a8\u30f3\u30b8\u30f3\uff09\u3067\u3042\u308b\u3001Java API for XML Web Services\uff08JAX-WS\uff09\u304c\u542b\u307e\u308c\u3066\u3044\u307e\u3057\u305f\u304c\u3001Java SE 9\u304b\u3089\u975e\u63a8\u5968<\/a>\u3068\u306a\u308a\u307e\u3057\u305f\u3002 SOAP Web\u30b5\u30fc\u30d3\u30b9\u3092\u69cb\u7bc9\u3059\u308b\u5834\u5408\u3001\u901a\u5e38\u306fSOAP\u30a8\u30f3\u30b8\u30f3\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af\u3092\u5229\u7528\u3057\u3001\u30b7\u30b9\u30c6\u30e0\u69cb\u7bc9\u306e\u4f5c\u696d\u8ca0\u8377\u3092\u8efd\u6e1b\u3057\u307e\u3059\u3002<\/p>\n SOAP\u30a8\u30f3\u30b8\u30f3\u306e\u5f79\u5272<\/p><\/div>\n SOAP\u3067\u306f\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u90e8\u5206\u3092SOAP\u30a8\u30f3\u30b8\u30f3\u306b\u4efb\u305b\u308b\u3053\u3068\u3067\u3001\u958b\u767a\u8005\u304c\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u69cb\u7bc9\u306b\u6ce8\u529b\u3067\u304d\u3001\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306e\u4fe1\u983c\u6027\u3084\u81ea\u7531\u5ea6\u304c\u9ad8\u307e\u308b\u3001\u3068\u3044\u3046\u30e1\u30ea\u30c3\u30c8\u3092\u5f97\u3089\u308c\u307e\u3059\u3002 \u3053\u306e\u3088\u3046\u306a\u7169\u96d1\u3055\u3092\u89e3\u6d88\u3057\u3066\u7c21\u6613\u306b\u5229\u7528\u3057\u305f\u3044\u3068\u3044\u3046\u8981\u671b\u3084\u3001JavaScript\u306e\u6d3b\u6027\u5316\u304b\u3089\u3001\u8fd1\u5e74\u3067\u306fREST+JSON\u306e\u7d44\u307f\u5408\u308f\u305b\u3067Web API\u3092\u63d0\u4f9b\u3059\u308b\u30b1\u30fc\u30b9\u304c\u4e3b\u6d41\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002 \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u898f\u6a21\u3084\u72b6\u6cc1\u306b\u62e0\u3063\u3066\u5909\u308f\u308a\u307e\u3059\u304c\u3001\u79c1\u306e\u7d4c\u9a13\u304b\u3089SOAP\u3092\u5229\u7528\u3057\u305f\u30b7\u30b9\u30c6\u30e0\u3092\u69cb\u7bc9\u3057\u305f\u969b\u306b\u3001\u300c\u3053\u308c\u306f\u5927\u5909\u3060\u3063\u305f\u300d\u3068\u3044\u3046\u70b9\u3092\u6319\u3052\u3066\u307f\u307e\u3059\u3002<\/p>\n SOAP\u30a8\u30f3\u30b8\u30f3\u304c\u63d0\u4f9b\u3059\u308b\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u30c4\u30fc\u30eb\u3067\u306f\u3001\u30b5\u30fc\u30d3\u30b9\u306e\u5b9a\u7fa9\u60c5\u5831\uff08WSDL:Web Services Description Language\uff09\u3092\u5229\u7528\u3057\u3066\u30ea\u30af\u30a8\u30b9\u30bf\u5411\u3051\u306b\u30b9\u30bf\u30d6\u30bd\u30fc\u30b9\u3092\u751f\u6210\u3059\u308b\u652f\u63f4\u6a5f\u80fd\u304c\u3042\u308a\u307e\u3059\u3002 \u4f8b\u3068\u3057\u3066\u3001Apache Axis2\u3067WSDL\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u30b9\u30bf\u30d6\u3092\u4f5c\u6210\u3059\u308b\u30c4\u30fc\u30eb(wsdl2java)\u3092\u5b9f\u884c\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002 \u524d\u8ff0\u306eWSDL\u3092\u629c\u7c8b\u3059\u308b\u3068\u3001<\/p>\n 3\u9805\u76ee\u7a0b\u5ea6\u306e\u8981\u7d20\u3092\u6301\u3064person\u3068\u3044\u3046\u578b\u3092\u5b9a\u7fa9\u3057\u3001<\/p>\n person\u3092\u691c\u7d22\u3057\u3066\u8fd4\u3059 read \u3068\u3044\u3046\u6a5f\u80fd\u3092\u5b9a\u7fa9\u3057\u305f\u3068\u3057\u307e\u3059\u3002 \u3053\u306e\u3088\u3046\u306a\u30b7\u30f3\u30d7\u30eb\u306aWSDL\u3067\u3082\u3001\u751f\u6210\u3055\u308c\u305fPersonStub.java\u306f\u7d04200KByte\uff08\u7a7a\u884c\u542b\u30815000\u884c\u5f31\uff09\u307b\u3069\u306e\u30b5\u30a4\u30ba\u306b\u306a\u308a\u307e\u3057\u305f\u3002 \u6a2a\u4e26\u3073\u306b\u5404\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u3067\u3053\u306e\u3088\u3046\u306a\u751f\u6210\u30d5\u30a1\u30a4\u30eb\u3092\u4f5c\u6210\u3057\u3066\u3044\u304f\u3068\u3001\u5f90\u3005\u306b\u8ca0\u62c5\u304c\u5927\u304d\u304f\u306a\u3063\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n \u7d50\u679c\u3001\u5951\u7d04\u4e0a\u306e\u30b0\u30ec\u30fc\u30be\u30fc\u30f3\u304c\u751f\u307e\u308c\u305f\u308a\u3001\u81ea\u52d5\u751f\u6210\u30bd\u30fc\u30b9\u3092\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3059\u308b\u30c1\u30fc\u30e0\u304c\u3044\u306a\u3044\u3001\u3068\u3044\u3063\u305f\u30c8\u30e9\u30d6\u30eb\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n \u30ea\u30af\u30a8\u30b9\u30bf\u306f\u524d\u8ff0\u306e\u751f\u6210\u3055\u308c\u305f\u51e6\u7406\u304b\u3089SOAP\u30a8\u30f3\u30b8\u30f3\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u7528\u3044\u307e\u3059\u304c\u3001\u30d7\u30ed\u30d0\u30a4\u30c0\u5074\u3068\u7570\u306a\u3063\u305f\u88fd\u54c1\u3092\u7528\u3044\u305f\u969b\u306b\u3001\u3053\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u76f8\u6027\u554f\u984c\u3092\u8d77\u3053\u3059\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002 SOAP\u30a8\u30f3\u30b8\u30f3\u306e\u76f8\u6027\u554f\u984c<\/p><\/div>\n WS-I\u306b\u3088\u308b\u57fa\u672c\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u306e\u7b56\u5b9a\u306b\u3088\u3063\u3066\u3001\u76f8\u4e92\u901a\u4fe1\u3067\u304d\u308b\u30b1\u30fc\u30b9\u306f\u5897\u3048\u307e\u3057\u305f\u304c\u3001\u8907\u6570\u30d0\u30fc\u30b8\u30e7\u30f3\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u304c\u5236\u5b9a\u3055\u308c\u305f\u3053\u3068\u306b\u3088\u308b\u6df7\u4e71\u3082\u751f\u307e\u308c\u307e\u3057\u305f\u3002 \u4ed6\u306b\u3001\u73cd\u3057\u3044\u30b1\u30fc\u30b9\u3067\u3059\u304c\u3001\u540c\u4e00\u30d7\u30ed\u30bb\u30b9\u5185\u306bSOAP\u30a8\u30f3\u30b8\u30f3\u306e\u30e9\u30a4\u30d6\u30e9\u30ea\u304c\u6df7\u5728\u3059\u308b\u3053\u3068\u3067\u3001\u5229\u7528\u3057\u3066\u3044\u308b\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7af6\u5408\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n SOAP\u30a8\u30f3\u30b8\u30f3\u306e\u7af6\u5408<\/p><\/div>\n \u3053\u306e\u3088\u3046\u306a\u72b6\u6cc1\u3067\u306f\u3001\u6b63\u5e38\u306b\u52d5\u4f5c\u3059\u308b\u5834\u5408\u3068\u7570\u5e38\u306a\u52d5\u4f5c\u306b\u306a\u308b\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u3001\u539f\u56e0\u306e\u7a76\u660e\u304c\u96e3\u3057\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n SOAP\u30a8\u30f3\u30b8\u30f3\u304c\u63d0\u4f9b\u3059\u308b\u652f\u63f4\u6a5f\u80fd\u3092\u7528\u3044\u308b\u3053\u3068\u3067\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u30ea\u30b9\u30af\u3068\u904b\u7528\u306e\u8ca0\u8377\u304c\u4e0a\u304c\u308b\u5834\u5408\u304c\u3042\u308b\u70b9\u3092\u6319\u3052\u307e\u3057\u305f\u3002 \u3053\u3053\u3067\u4e00\u5ea6\u3001WSDL\u306e\u69cb\u6210\u3092\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n WSDL\u69cb\u6210\u30a4\u30e1\u30fc\u30b8<\/p><\/div>\n WSDL\u69cb\u6210\u30a4\u30e1\u30fc\u30b8\u306etypes\u8981\u7d20\u306f\u3001\u5148\u7a0b\u306e\u629c\u7c8b\u4f8b\u3067person\u304c\u5b9a\u7fa9\u3055\u308c\u305f\u7b87\u6240\u3067\u3059\u3002\u9001\u53d7\u4fe1\u30d1\u30e9\u30e1\u30fc\u30bf\u3068\u306a\u308b\u30ea\u30af\u30a8\u30b9\u30c8\u30c7\u30fc\u30bf\u3068\u30ec\u30b9\u30dd\u30f3\u30b9\u30c7\u30fc\u30bf\u81ea\u4f53\u3082\u5b9a\u7fa9<\/strong>\u3055\u308c\u307e\u3059\u3002 \u5148\u7a0b\u306eperson\u3092\u691c\u7d22\u3059\u308bread\u30b5\u30fc\u30d3\u30b9\u306e\u30ea\u30af\u30a8\u30b9\u30c8\u30e1\u30c3\u30bb\u30fc\u30b8\u306f\u3053\u306e\u3088\u3046\u306a\u66f8\u5f0f\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n \u5bfe\u3059\u308b\u30ec\u30b9\u30dd\u30f3\u30b9\u30e1\u30c3\u30bb\u30fc\u30b8\uff08\u4f8b\uff1a2\u4ef6\u306e\u56de\u7b54\u304c\u3042\u3063\u305f\u3068\u4eee\u5b9a\uff09\u306f\u3001\u3053\u306e\u3088\u3046\u306a\u66f8\u5f0f\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n WSDL\u306etypes\u8981\u7d20\u3067\u5b9a\u7fa9\u3055\u308c\u305freadRequest\u3068readResponse\u3067\u30c7\u30fc\u30bf\u9023\u643a\u3057\u3066\u3044\u307e\u3059\u306d\uff08\u3053\u3053\u3067\u306f\u7701\u3044\u3066\u3044\u307e\u3059\u304c\u3001\u30a8\u30e9\u30fc\u306e\u5834\u5408\u306f\u30ec\u30b9\u30dd\u30f3\u30b9\u5185\u5bb9\u306f\u5909\u308f\u308a\u307e\u3059\uff09\u3002<\/p>\n \u30ea\u30af\u30a8\u30b9\u30c8\u6587\u5b57\u5217\u3092SOAP\u30d7\u30ed\u30d0\u30a4\u30c0\u306b\u9001\u4fe1\u3057\u3001SOAP\u3067\u306e\u901a\u4fe1\u304c\u6210\u7acb\u3059\u308b\u304b\u8a66\u3057\u3066\u307f\u307e\u3059\u3002 \u4ee5\u4e0b\u306e\u51e6\u7406\u3092\u4f5c\u6210\u3057\u3066\u307f\u307e\u3057\u305f\u3002 \u3053\u306e\u30b5\u30f3\u30d7\u30eb\u30bd\u30fc\u30b9\u3067\u306e\u30dd\u30a4\u30f3\u30c8\u306f\u4ee5\u4e0b\u3067\u3059\u3002<\/p>\n [\u30e1\u30a4\u30f3\u51e6\u7406]<\/p>\n main\u3092\u8d77\u52d5\u3057\u3001\u7528\u610f\u3057\u305f\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u308b\u3068\u3001SoapUI\u306b\u8a2d\u5b9a\u3057\u3066\u304a\u3044\u305f\u30c0\u30df\u30fc\u56de\u7b54\u304c\u8fd4\u3055\u308c\u307e\u3057\u305f\u3002 \u3042\u3068\u306fSOAP\u7279\u6709\u306eEnvelope\u3001Header\u3001Body\u30bf\u30b0\u3092\u7de8\u96c6\u3059\u308b\u6a5f\u80fd\u3068\u3001\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057SOAP Fault\u304c\u8fd4\u3055\u308c\u305f\u5834\u5408\u306e\u632f\u308b\u821e\u3044\u3092\u6574\u7406\u3059\u308c\u3070\u3001XML\u3067\u306e\u4f1a\u8a71\u304c\u53ef\u80fd\u306b\u306a\u308a\u307e\u3059\u306d\u3002<\/p>\n XML\u304c\u5358\u7d14\u306b\u8981\u7d20\u306e\u307f\u304c\u5217\u6319\u3055\u308c\u305f\u69cb\u6210\u3067\u3042\u308c\u3070\u3001DOM\u3067\u30d1\u30fc\u30b9\u3057\u3066Map\u306b\u683c\u7d0d\u3059\u308b\u3068\u30b7\u30f3\u30d7\u30eb\u306b\u306a\u308a\u307e\u3059\u3002 \u307e\u305a\u306f\u3001WSDL\u304b\u3089XSD\u30d5\u30a1\u30a4\u30eb\u3092\u629c\u304d\u51fa\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n \u3053\u306e\u3088\u3046\u306a\u624b\u9806\u3067XSD\u30d5\u30a1\u30a4\u30eb\u304c\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n Java SE\u306b\u306fxjc\u3068\u3044\u3046\u30c4\u30fc\u30eb\u304c\u4ed8\u5c5e\u3057\u3066\u3044\u3066\u3001XML\u306b\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\uff0f\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3067\u304d\u308b\u30af\u30e9\u30b9\u30bd\u30fc\u30b9\u3092\u751f\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n xjc\u306e\u5b9f\u884c\u30a4\u30e1\u30fc\u30b8<\/p><\/div>\n \u30b5\u30a4\u30ba\u3068\u3057\u3066\u306f3KBytes\u524d\u5f8c\u306e\u30d5\u30a1\u30a4\u30eb\u304c\u4f5c\u6210\u3055\u308c\u307e\u3059\u3002<\/p>\n \u6982\u8981\u3060\u3051\u8a18\u8f09\u3059\u308b\u3068\u3001\u751f\u6210\u3055\u308c\u305f\u30af\u30e9\u30b9\u306f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306b\u5024\u3092\u8a70\u3081\u3066\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3059\u308c\u3070\u3001Java Architecture for XML Binding\uff08JAXB\uff09\u3068\u3044\u3046\u4ed5\u7d44\u307f\u306b\u3088\u3063\u3066XML\u6587\u66f8\u3092\u5f97\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u53cd\u5bfe\u306bXML\u6587\u66f8\u304b\u3089\u30c7\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\u3057\u3001Java\u30af\u30e9\u30b9\u3092\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5316\u3059\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u3002 JAXB\u306b\u3064\u3044\u3066\u3082Java SE 9\u304b\u3089\u975e\u63a8\u5968<\/a>\u3068\u306a\u3063\u3066\u3044\u308b\u305f\u3081\u3001Java SE 10(18.3)\u4ee5\u964d\u306f\u500b\u5225\u3067\u5165\u624b\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u305d\u3046\u3067\u3059\u3002<\/p>\n SOAP\u30a8\u30f3\u30b8\u30f3\u304c\u63d0\u4f9b\u3059\u308b\u91cd\u539a\u306a\u30e9\u30a4\u30d6\u30e9\u30ea\u3092\u4f7f\u308f\u306a\u304f\u3066\u3082SOAP Web\u30b5\u30fc\u30d3\u30b9\u3092\u5229\u7528\u3067\u304d\u308b\u3001\u3068\u611f\u3058\u3066\u3044\u305f\u3060\u3051\u305f\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n XML\u6587\u66f8\u3067\u30c7\u30fc\u30bf\u9023\u643a\u3067\u304d\u308b\u3068\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u51e6\u7406\u4ee5\u5916\u3067\u3082\u6d3b\u7528\u3057\u3084\u3059\u304f\u306a\u308b\u3068\u3044\u3046\u52b9\u679c\u3082\u751f\u307e\u308c\u307e\u3059\u3002 XML\u9023\u643a\u306e\u6d3b\u7528\u4f8b\u3092\u6319\u3052\u308b\u3068\u3001ETL(Extract\/Transform\/Load)\u30c4\u30fc\u30eb\u3092\u5229\u7528\u3057\u3001\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u88fd\u9020\u3068\u904b\u7528\u306e\u30b3\u30b9\u30c8\u3092\u6291\u3048\u3089\u308c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002 (Petr Kratochvil<\/a> \/ CC0 Public Domain<\/a>)<\/span><\/p>\n \u3053\u3093\u306b\u3061\u306f\u3001\u521d\u6295\u7a3f\u306e\u5409\u7530\u3067\u3059\u3002\u3088\u308d\u3057\u304f\u304a\u9858\u3044\u3057\u307e\u3059\u3002<\/p>\n Java SE 8\u306e\u30b5\u30dd\u30fc\u30c8\u516c\u5f0f\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u306e\u7d42\u4e86\u901a\u77e5\u304c\u3042\u3063\u305f\u306e\u3067\u3001\u305d\u308d\u305d\u308d\u65e2\u5b58\u30b7\u30b9\u30c6\u30e0\u306e\u30ea\u30d7\u30ec\u30fc\u30b9\u304c\u8a71\u984c\u306b\u306a\u3063\u3066\u304f\u308b\u9803\u3067\u3059\u306d\u3002\u65b0\u3057\u3044\u4ed5\u7d44\u307f\u3092\u518d\u69cb\u7bc9\u3059\u308b\u306e\u304b\u3001\u30b7\u30b9\u30c6\u30e0\u8cc7\u7523\u3092\u5ef6\u547d\u3059\u308b\u306e\u304b\u3001\u3068\u3044\u3063\u305f\u691c\u8a0e\u3092\u59cb\u3081\u3066\u3044\u308b\u65b9\u3082\u591a\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n \u4eca\u56de\u306f\u3001\u300cSOAP Web\u30b5\u30fc\u30d3\u30b9\u3092\u4eca\u98a8\u306b\u518d\u69cb\u7bc9\u3059\u308b\u300d\u3068\u3044\u3046\u5224\u65ad\u3092\u3059\u308b\u524d\u306b\u3001\u30bf\u30a4\u30c8\u30eb\u306b\u3042\u308b\u3068\u304a\u308a\u73fe\u5728\u306e\u904b\u7528\u3067\u65e2\u5b58\u8cc7\u7523\u306e\u4fa1\u5024\u3092\u9ad8\u3081\u3089\u308c\u306a\u3044\u304b\u3092\u63a2\u3063\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002
\n\u904e\u53bb\u306b\u3064\u307e\u305a\u3044\u305f\u7d4c\u9a13\u306a\u3069\u3082\u8a18\u8f09\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u5c11\u3057\u9577\u3044\u3067\u3059\u304c\u304a\u4ed8\u304d\u5408\u3044\u304f\u3060\u3055\u3044\u3002<\/p>\n\u300cSOAP Web\u30b5\u30fc\u30d3\u30b9\u300d\u306e\u304a\u3055\u3089\u3044<\/h2>\n
SOAP Web\u30b5\u30fc\u30d3\u30b9\u306e\u72b6\u6cc1<\/h3>\n
\n\"Web\u30b5\u30fc\u30d3\u30b9\" \uff1d \"SOAP\u3092\u5229\u7528\u3057\u305fWeb API\" \u3068\u3044\u3046\u304f\u3089\u3044\u4e00\u822c\u7684\u3067\u3057\u305f\u3002
\n\u6700\u8fd1\u3001\"Web\u30b5\u30fc\u30d3\u30b9\"\u3068\u3044\u3046\u8a00\u8449\u306f\u3001Web\u30a2\u30d7\u30ea\u306a\u3069\u5e83\u3044\u610f\u5473\u3067\u4f7f\u308f\u308c\u308b\u3053\u3068\u304c\u591a\u304f\u306a\u3063\u305f\u306e\u3067\u3001\u672c\u6295\u7a3f\u3067\u306f\"SOAP Web\u30b5\u30fc\u30d3\u30b9\"\u3068\u8a18\u8f09\u3057\u307e\u3059\u3002<\/p>\n
\n\u304a\u305d\u3089\u304fJava SE 10(18.3)\u304b\u3089\u306f\u524a\u9664\u3055\u308c\u308b\u306e\u3067\u3057\u3087\u3046\u3002
\nJAX-WS\u306e\u5b9f\u88c5\u3092\u63a8\u9032\u3057\u3066\u3044\u308b\u30aa\u30fc\u30d7\u30f3\u30bd\u30fc\u30b9\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u304c\u505c\u6b62\u3059\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u6562\u3048\u3066SOAP Web\u30b5\u30fc\u30d3\u30b9\u3092\u65b0\u898f\u69cb\u7bc9\u3057\u3088\u3046\u3001\u3068\u3044\u3046\u624b\u6bb5\u306f\u3068\u308a\u96e3\u304f\u306a\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\nSOAP\u30a8\u30f3\u30b8\u30f3\u306e\u5f79\u5272<\/h3>\n
\n\u53cd\u9762\u3001\u8907\u96d1\u306a\u30a4\u30f3\u30bf\u30fc\u30d5\u30a7\u30fc\u30b9\u306b\u306a\u3063\u305f\u308a\u3001SOAP\u30a8\u30f3\u30b8\u30f3\u306b\u4f9d\u5b58\u3057\u305f\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u306b\u306a\u3063\u3066\u3057\u307e\u3046\u3001\u3068\u3044\u3063\u305f\u30c7\u30e1\u30ea\u30c3\u30c8\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\nSOAP Web\u30b5\u30fc\u30d3\u30b9\u306f\u99c6\u9010\u3055\u308c\u3066\u3044\u304f\u306e\u304b<\/h3>\n
\n<\/strong>\u3057\u304b\u3057\u3001\u73fe\u5f79\u3067\u7a3c\u52d5\u3057\u3066\u3044\u308b\u30a8\u30f3\u30bf\u30fc\u30d7\u30e9\u30a4\u30ba\u74b0\u5883\u306eSOAP Web\u30b5\u30fc\u30d3\u30b9\u63d0\u4f9b\u5074\u30b7\u30b9\u30c6\u30e0\uff08\u30d7\u30ed\u30d0\u30a4\u30c0\uff09\u306f\u3001\u5927\u91cf\u306e\u30c7\u30fc\u30bf\u3092\u62b1\u3048\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u304f\u3001\u63a5\u7d9a\u3057\u3066\u3044\u308b\u5229\u7528\u5074\u30b7\u30b9\u30c6\u30e0\uff08\u30ea\u30af\u30a8\u30b9\u30bf\uff09\u3082\u591a\u3044\u305f\u3081\u3001\u518d\u69cb\u7bc9\u306f\u5927\u304d\u306a\u6c7a\u65ad\u3068\u306a\u308a\u307e\u3059\u3002
\n\u30d7\u30ed\u30d0\u30a4\u30c0\u5074\u306e\u69cb\u7bc9\u624b\u6cd5\u304c\u78ba\u7acb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u304c\u591a\u3044\u306e\u3067\u3001\u3053\u308c\u3092\u4e00\u304b\u3089\u7d44\u307f\u306a\u304a\u3059\u3053\u3068\u306f\u96e3\u3057\u3044\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002
\n\u305d\u3053\u3067\u3001\u3053\u308c\u304b\u3089\u30ea\u30af\u30a8\u30b9\u30bf\u306e\u8ffd\u52a0\u69cb\u7bc9\u3084\u30ea\u30d7\u30ec\u30fc\u30b9\u3092\u304a\u3053\u306a\u3046\u969b\u306b\u3001\u30ea\u30af\u30a8\u30b9\u30bf\u5074\u306e\u7169\u96d1\u3055\u3092\u89e3\u6d88\u3067\u304d\u306a\u3044\u304b\u691c\u8a0e\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\u3042\u3089\u305f\u3081\u3066SOAP\u306e\u8ab2\u984c\u3063\u3066\u306a\u3093\u3060\u308d\u3046\uff1f<\/h2>\n
\uff11\uff0e\u30b9\u30bf\u30d6\u30bd\u30fc\u30b9\u306e\u7ba1\u7406\u304c\u305f\u3044\u3078\u3093<\/h3>\n
\n\u3057\u304b\u3057\u3001\u3053\u306e\u3088\u3046\u306a\u751f\u6210\u30bd\u30fc\u30b9\u306f\u500b\u3005\u306bSOAP Web\u30b5\u30fc\u30d3\u30b9\u306e\u901a\u4fe1\u6a5f\u80fd\u3092\u63d0\u4f9b\u3059\u308b\u305f\u3081\u3001\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u3059\u308b\u6a5f\u80fd\u304c\u591a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\nApache Axis2\u3067WSDL\u304b\u3089\u30b9\u30bf\u30d6\u3092\u4f5c\u6210\u3057\u3066\u78ba\u8a8d<\/strong><\/h4>\n
\n\u7528\u610f\u3057\u305f\u30b5\u30f3\u30d7\u30eb\u306eWSDL\u306f\u30b3\u30c1\u30e9\u3002<\/p>\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<wsdl:definitions targetNamespace=\"http:\/\/test.crmstyle.com\/person\/\" \r\n xmlns:impl=\"http:\/\/test.crmstyle.com\/person\/\" \r\n xmlns:wsdlsoap=\"http:\/\/schemas.xmlsoap.org\/wsdl\/soap\/\" \r\n xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\" \r\n xmlns:xsd1=\"http:\/\/test.crmstyle.com\/person\/xsd\" \r\n xmlns:wsdl=\"http:\/\/schemas.xmlsoap.org\/wsdl\/\">\r\n \r\n <wsdl:types>\r\n <schema elementFormDefault=\"qualified\" targetNamespace=\"http:\/\/test.crmstyle.com\/person\/xsd\" xmlns=\"http:\/\/www.w3.org\/2001\/XMLSchema\">\r\n <complexType name=\"select\">\r\n <attribute name=\"value\" type=\"xsd:int\" use=\"required\"\/>\r\n <attribute name=\"text\" type=\"xsd:string\" use=\"optional\"\/>\r\n <\/complexType>\r\n\r\n <complexType name=\"selectList\">\r\n <sequence>\r\n <element maxOccurs=\"unbounded\" minOccurs=\"0\" name=\"select\" type=\"xsd1:select\"\/>\r\n <\/sequence>\r\n <\/complexType>\r\n\r\n <complexType name=\"complexData\">\r\n <choice>\r\n <element name=\"textData\" nillable=\"true\" type=\"xsd:string\"\/>\r\n <element name=\"selectData\" type=\"xsd1:selectList\"\/>\r\n <\/choice>\r\n <attribute name=\"op\" type=\"xsd:string\" use=\"optional\"\/>\r\n <\/complexType>\r\n\r\n <complexType name=\"person\">\r\n <all>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"mailaddress\" type=\"xsd:string\"\/>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"name\" type=\"xsd:string\"\/>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"birthday\" nillable=\"true\" type=\"xsd:date\"\/>\r\n <\/all>\r\n <\/complexType>\r\n\r\n <complexType name=\"searchCondition\">\r\n <all>\r\n <element name=\"column\" type=\"xsd:string\"\/>\r\n <element name=\"condition\" type=\"xsd1:complexData\"\/>\r\n <\/all>\r\n <\/complexType>\r\n\r\n <element name=\"fault\">\r\n <complexType>\r\n <sequence>\r\n <element name=\"errorCode\" type=\"xsd:int\"\/>\r\n <element name=\"errorMessage\" type=\"xsd:string\"\/>\r\n <\/sequence>\r\n <\/complexType>\r\n <\/element>\r\n\r\n <element name=\"readRequest\">\r\n <complexType>\r\n <all>\r\n <element name=\"searchCondition\" type=\"xsd1:searchCondition\"\/>\r\n <element minOccurs=\"0\" name=\"limit\" type=\"xsd:int\"\/>\r\n <\/all>\r\n <\/complexType>\r\n <\/element>\r\n <element name=\"readResponse\">\r\n <complexType>\r\n <sequence>\r\n <element name=\"count\" type=\"xsd:int\"\/>\r\n <element maxOccurs=\"100\" minOccurs=\"0\" name=\"person\" type=\"xsd1:person\"\/>\r\n <\/sequence>\r\n <\/complexType>\r\n <\/element>\r\n <\/schema>\r\n <\/wsdl:types>\r\n \r\n <wsdl:message name=\"read\">\r\n <wsdl:part name=\"requestParameter\" element=\"xsd1:readRequest\">\r\n <\/wsdl:part>\r\n <\/wsdl:message>\r\n <wsdl:message name=\"readResponse\">\r\n <wsdl:part name=\"readReturn\" element=\"xsd1:readResponse\">\r\n <\/wsdl:part>\r\n <\/wsdl:message>\r\n <wsdl:message name=\"faultMessage\">\r\n <wsdl:part name=\"faultMessage\" element=\"xsd1:fault\">\r\n <\/wsdl:part>\r\n <\/wsdl:message>\r\n <wsdl:portType name=\"personPortType\">\r\n <wsdl:operation name=\"read\" parameterOrder=\"requestParameter\">\r\n <wsdl:input message=\"impl:read\"><\/wsdl:input>\r\n <wsdl:output message=\"impl:readResponse\"><\/wsdl:output>\r\n <wsdl:fault name=\"faultMessage\" message=\"impl:faultMessage\"><\/wsdl:fault>\r\n <\/wsdl:operation>\r\n <\/wsdl:portType>\r\n <wsdl:binding name=\"personBinding\" type=\"impl:personPortType\">\r\n <wsdlsoap:binding style=\"document\" transport=\"http:\/\/schemas.xmlsoap.org\/soap\/http\"\/>\r\n <wsdl:operation name=\"read\">\r\n <wsdlsoap:operation soapAction=\"read\"\/>\r\n <wsdl:input>\r\n <wsdlsoap:body use=\"literal\"\/>\r\n <\/wsdl:input>\r\n <wsdl:output>\r\n <wsdlsoap:body use=\"literal\"\/>\r\n <\/wsdl:output>\r\n <wsdl:fault name=\"faultMessage\">\r\n <wsdlsoap:fault name=\"faultMessage\" use=\"literal\"\/>\r\n <\/wsdl:fault>\r\n <\/wsdl:operation>\r\n <\/wsdl:binding>\r\n <wsdl:service name=\"person\">\r\n <wsdl:port name=\"personPort\" binding=\"impl:personBinding\">\r\n <wsdlsoap:address location=\"https:\/\/xxx\/xxx\/\"\/>\r\n <\/wsdl:port>\r\n <\/wsdl:service>\r\n<\/wsdl:definitions>\r\n<\/pre>\n
<complexType name=\"person\">\r\n <all>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"mailaddress\" type=\"xsd:string\"\/>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"name\" type=\"xsd:string\"\/>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"birthday\" nillable=\"true\" type=\"xsd:date\"\/>\r\n <\/all>\r\n<\/complexType><\/pre>\n
<wsdl:operation name=\"read\" parameterOrder=\"requestParameter\">\r\n <wsdl:input message=\"impl:read\"><\/wsdl:input>\r\n <wsdl:output message=\"impl:readResponse\"><\/wsdl:output>\r\n <wsdl:fault name=\"faultMessage\" message=\"impl:faultMessage\"><\/wsdl:fault>\r\n<\/wsdl:operation><\/pre>\n
\n\u8a66\u3057\u306bWSDL\u30d5\u30a1\u30a4\u30eb\u3092\u3001SOAP\u30a8\u30f3\u30b8\u30f3\u3067\u3042\u308bApache Axis2\uff081.7.7\uff09\u306ewsdl2java\u30c4\u30fc\u30eb\u306b\u304b\u3051\u3066Java\u30bd\u30fc\u30b9\u3092\u751f\u6210\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\nfilename size\r\n-----------------------------------\r\nFaultMessage.java 957\r\nPersonCallbackHandler.java 1,653\r\nPersonStub.java 207,006<\/pre>\n
\nPersonStub.java\u306b\u306f\u3001Person\u30af\u30e9\u30b9\u306e\u5b9a\u7fa9\u3084\u3001\u5b9f\u969b\u306b\u901a\u4fe1\u3092\u304a\u3053\u306a\u3046\u30b9\u30bf\u30d6\u51e6\u7406\u304c\u8a18\u8f09\u3055\u308c\u307e\u3059\u3002<\/p>\n\u751f\u6210\u30bd\u30fc\u30b9\u306e\u80a5\u5927\u5316<\/strong><\/h4>\n
\n
\uff12\uff0eSOAP\u30a8\u30f3\u30b8\u30f3\u306e\u76f8\u6027\u554f\u984c
\n<\/strong><\/h3>\n\u76f8\u4e92\u904b\u7528\u6027\u306e\u554f\u984c<\/h4>\n
\n\u3053\u306e\u554f\u984c\u306fWeb Services Interoperability\uff08WS-I\uff09\u3068\u3044\u3046\u56e3\u4f53\u304c\u8a2d\u7acb\u3055\u308c\u308b\u307b\u3069\u6839\u6df1\u3044\u554f\u984c\u3067\u3057\u305f\u3002<\/p>\n
\n\u307e\u305f\u3001\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u901a\u4fe1\u3092\u304a\u3053\u306a\u3063\u305f\u969b\u306b\u76f8\u6027\u554f\u984c\u304c\u767a\u899a\u3057\u3001\u958b\u767a\u30d5\u30a7\u30fc\u30ba\u306e\u7d42\u76e4\u3067\u554f\u984c\u3068\u306a\u308b\u30ea\u30b9\u30af\u306f\u672a\u3060\u306b\u5b58\u5728\u3057\u307e\u3059\u3002
\nSOAP\u30a8\u30f3\u30b8\u30f3\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u66f4\u65b0\u3057\u305f\u969b\u306a\u3069\u3001\u610f\u5916\u306a\u30bf\u30a4\u30df\u30f3\u30b0\u3067\u76f8\u6027\u554f\u984c\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n\u30e9\u30a4\u30d6\u30e9\u30ea\u306e\u7af6\u5408<\/h4>\n
\u305d\u3082\u305d\u3082\u30ea\u30af\u30a8\u30b9\u30bf\u5074\u306bSOAP\u30a8\u30f3\u30b8\u30f3\u306e\u6a5f\u80fd\u306f\u5fc5\u8981\uff1f<\/h2>\n
\n\u305d\u308c\u306a\u3089\u601d\u3044\u5207\u3063\u3066\u3001SOAP\u30a8\u30f3\u30b8\u30f3\u304b\u3089\u63d0\u4f9b\u3055\u308c\u308b\u30ea\u30af\u30a8\u30b9\u30bf\u5411\u3051\u306e\u6a5f\u80fd\u306f\u5229\u7528\u305b\u305a\u3001SOAP\u901a\u4fe1\u6a5f\u80fd\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u3092\u691c\u8a0e\u3057\u3066\u307f\u3066\u306f\u3044\u304b\u304c\u3067\u3057\u3087\u3046\u304b\u3002
\nSOAP\u81ea\u4f53\u306fHTTP\u306ePOST\u30e1\u30bd\u30c3\u30c9\u3067\u3059\u306e\u3067\u3001\u9001\u53d7\u4fe1\u3059\u308b\u30c7\u30fc\u30bf\u3092\u6574\u7406\u3067\u304d\u308c\u3070\u53ef\u80fd\u3060\u3068\u8003\u3048\u3089\u308c\u307e\u3059\u3002<\/p>\nWSDL\u306e\u69cb\u6210<\/h3>\n
\n\u3053\u308c\u3089\u306e\u578b\u5b9a\u7fa9\u306b\u306fXML Schema\u304c\u5229\u7528\u3055\u308c\u3066\u3044\u307e\u3059\u3002
\nmessage\u8981\u7d20\u3067\u306f\u3001\u30ea\u30af\u30a8\u30b9\u30c8\u3068\u30ec\u30b9\u30dd\u30f3\u30b9\u3067\u7528\u3044\u3089\u308c\u308b\u30c7\u30fc\u30bf\u578b\u3092\u6307\u5b9a\u3057\u3001\u901a\u4fe1\u306b\u5229\u7528\u3059\u308bmessage\u3092operation\u8981\u7d20\u3067\u5b9a\u7fa9\u3057\u307e\u3059\u3002<\/p>\n<soapenv:Envelope \r\n xmlns:soapenv=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\" \r\n xmlns:xsd=\"http:\/\/test.crmstyle.com\/person\/xsd\">\r\n <soapenv:Header\/>\r\n <soapenv:Body>\r\n <xsd:readRequest>\r\n <xsd:searchCondition>\r\n <xsd:column>name<\/xsd:column>\r\n <xsd:condition>\r\n <xsd:textData>\u30c6\u30b9\u30c8\u592a\u90ce<\/xsd:textData>\r\n <\/xsd:condition>\r\n <\/xsd:searchCondition>\r\n <xsd:limit>100<\/xsd:limit>\r\n <\/xsd:readRequest>\r\n <\/soapenv:Body>\r\n<\/soapenv:Envelope><\/pre>\n
<soapenv:Envelope \r\n xmlns:soapenv=\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\" \r\n xmlns:xsd=\"http:\/\/test.crmstyle.com\/person\/xsd\">\r\n <soapenv:Header\/>\r\n <soapenv:Body>\r\n <xsd:readResponse>\r\n <xsd:count>2<\/xsd:count>\r\n <xsd:person>\r\n <xsd:mailaddress>test_taro@***.***<\/xsd:mailaddress>\r\n <xsd:name>\u30c6\u30b9\u30c8\u592a\u90ce<\/xsd:name>\r\n <xsd:birthday>2000-01-01<\/xsd:birthday>\r\n <\/xsd:person>\r\n <xsd:person>\r\n <xsd:mailaddress>test.taro@***.***<\/xsd:mailaddress>\r\n <xsd:name>\u30c6\u30b9\u30c8\u592a\u90ce<\/xsd:name>\r\n <xsd:birthday>2000-01-02<\/xsd:birthday>\r\n <\/xsd:person>\r\n <\/xsd:readResponse>\r\n <\/soapenv:Body>\r\n<\/soapenv:Envelope><\/pre>\n
SOAP\u30a8\u30f3\u30b8\u30f3\u306e\u30b5\u30dd\u30fc\u30c8\u306a\u3057\u3067\u901a\u4fe1\u3067\u304d\u308b\u304b\u5b9f\u9a13<\/h3>\n
\n\u300cSoapUI\u300d\u3068\u3044\u3063\u305f\u30c4\u30fc\u30eb\u3092\u7528\u3044\u308b\u3068WSDL\u304b\u3089\u7c21\u5358\u306b\u30c6\u30b9\u30c8\u7528\u306eSOAP\u30d7\u30ed\u30d0\u30a4\u30c0\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u3066\u4fbf\u5229\u3067\u3059\u3002
\n\u5229\u7528\u3057\u305f\u74b0\u5883\u306f
\n\u30fbJava SE\u00a01.8.0
\n\u30fbSoapUI 5.4.0
\n\u3067\u3059\u3002<\/p>\n
\n\u203b\u4f8b\u306f\u6388\u53d7\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u30b5\u30a4\u30ba\u304cString\u306b\u683c\u7d0d\u3057\u3066\u3082\u554f\u984c\u306a\u3044\u30b1\u30fc\u30b9\u3092\u60f3\u5b9a\u3057\u3066\u3044\u307e\u3059\u3002
\n[\u30ea\u30af\u30a8\u30b9\u30c8\u51e6\u7406]<\/p>\npackage soapsample;\r\n\r\nimport java.io.BufferedReader;\r\nimport java.io.BufferedWriter;\r\nimport java.io.IOException;\r\nimport java.io.InputStream;\r\nimport java.io.InputStreamReader;\r\nimport java.io.OutputStreamWriter;\r\nimport java.net.HttpURLConnection;\r\nimport java.net.URL;\r\nimport java.nio.charset.Charset;\r\nimport java.nio.charset.StandardCharsets;\r\n\r\n\/**\r\n * SOAP\u30ea\u30af\u30a8\u30b9\u30bf<br>\r\n * <p>\r\n * \u4e0e\u3048\u3089\u308c\u305fString\u3067SOAP\u30ea\u30af\u30a8\u30b9\u30c8\u3092\u9001\u4fe1\u3057\u307e\u3059\u3002<br>\r\n *\/\r\npublic class SoapRequestor {\r\n\r\n\t\/**\r\n\t * SOAP\u30ea\u30af\u30a8\u30b9\u30c8\u9001\u4fe1\u51e6\u7406\r\n\t * @param endPointUrl \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8URL\r\n\t * @param actionName \u30a2\u30af\u30b7\u30e7\u30f3\u540d\r\n\t * @param requestMessage \u9001\u4fe1XML\u5185\u5bb9\r\n\t * @param encode \u5165\u51fa\u529b\u30c7\u30fc\u30bf\u306e\u30a8\u30f3\u30b3\u30fc\u30c9\u6307\u5b9a\u6587\u5b57\u5217\r\n\t * @return \u53d7\u4fe1XML\u5185\u5bb9\r\n\t * @throws IOException \r\n\t *\/\r\n\tpublic String postSoapMessage(\r\n\t\t\tString endPointUrl,\r\n\t\t\tString actionName,\r\n\t\t\tString requestMessage,\r\n\t\t\tString encode,\r\n\t\t\tint timeoutSeconds\r\n\t\t\t) throws IOException{\r\n\r\n\t\tSystem.out.println(\"\u25a0postSoapMessage Start\");\r\n\r\n\t\tString responseString = \"\";\r\n\r\n\t\tURL url = new URL(endPointUrl); \/\/ \u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306eURL\u3092\u4f5c\u6210\r\n\r\n\t\tHttpURLConnection connection = null; \/\/ HTTP\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\r\n\t\tBufferedWriter requestWriter = null; \/\/ \u5165\u529b\u30c7\u30fc\u30bf\u66f8\u8fbc\r\n\r\n\t\ttry {\r\n\t\t\t\/\/ \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u4f5c\u6210\r\n\t\t\tconnection = (HttpURLConnection) url.openConnection();\r\n\t\t\tconnection.setDoOutput(true);\r\n\t\t\tconnection.setDoInput(true);\r\n\t\t\tconnection.setRequestMethod(\"POST\");\r\n\t\t\tconnection.setRequestProperty(\"Content-type\", \"text\/xml; charset=utf-8\"); \r\n\t\t\tconnection.setRequestProperty(\"SoapAction\", actionName); \r\n\t\t\tconnection.setConnectTimeout(timeoutSeconds * 1000); \/\/\u8a2d\u5b9a\u306f\u30df\u30ea\u79d2\u306e\u305f\u30811000\u500d\r\n\t\t\tconnection.setReadTimeout(timeoutSeconds * 1000); \/\/\u8a2d\u5b9a\u306f\u30df\u30ea\u79d2\u306e\u305f\u30811000\u500d\r\n\r\n\t\t\t\/\/ \u30e1\u30c3\u30bb\u30fc\u30b8\u3092\u9001\u4fe1\u3059\u308b\r\n\t\t\trequestWriter = new BufferedWriter(new OutputStreamWriter(\r\n\t\t\t\t\t\t\t\t\t\t\t\tconnection.getOutputStream(),\r\n\t\t\t\t\t\t\t\t\t\t\t\tStandardCharsets.UTF_8));\r\n\t\t\trequestWriter.write(requestMessage);\r\n\t\t\trequestWriter.flush();\r\n\r\n\t\t\tint lastHttpStatus = connection.getResponseCode(); \/\/ \u30b5\u30fc\u30d0\u51e6\u7406\u3092\u547c\u3073\u51fa\u3057\u3001\u7d50\u679c\u30b3\u30fc\u30c9\u3092\u53d6\u5f97\r\n\r\n\t\t\t\/\/ \u53d7\u4fe1\u7d50\u679c\u304cOK\u306e\u5834\u5408\r\n\t\t\tif (lastHttpStatus == HttpURLConnection.HTTP_OK) {\r\n\t\t\t\t\/\/ \u6a19\u6e96\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u53d7\u4fe1\u3059\u308b\r\n\t\t\t\ttry(InputStreamReader isReaderRes = new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8);\r\n\t\t\t\t\t\tBufferedReader responseReader = new BufferedReader(isReaderRes))\r\n\t\t\t\t{\r\n\t\t\t\t\t\/\/ \u7d50\u679c\u3092\u53d6\u5f97\u3059\u308b\r\n\t\t\t\t\tresponseString = readStream(connection.getInputStream(), StandardCharsets.UTF_8);\r\n\t\t\t\t}\r\n\t\t\t}else{\r\n\t\t\t\t\/\/ \u30a8\u30e9\u30fc\u30b9\u30c8\u30ea\u30fc\u30e0\u3092\u53d7\u4fe1\u3059\u308b\r\n\t\t\t\tInputStream errorStream = connection.getErrorStream();\r\n\t\t\t\tif(errorStream != null){\r\n\t\t\t\t\ttry(InputStreamReader isReaderRes = new InputStreamReader(errorStream, StandardCharsets.UTF_8);\r\n\t\t\t\t\t\t\tBufferedReader responseReader = new BufferedReader(isReaderRes))\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\t\/\/ \u7d50\u679c\u3092\u53d6\u5f97\u3059\u308b\r\n\t\t\t\t\t\tresponseString = readStream(errorStream, StandardCharsets.UTF_8);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\/\/ \u305d\u306e\u4ed6\u306e\u30a8\u30e9\u30fc\u306e\u5834\u5408\r\n\t\t\t\t\/\/ \u4f8b\u5916\u3092\u767a\u751f\u3055\u305b\u308b(\u4f8b\u5916\u306f\u30e1\u30fc\u30eb\u3067\u901a\u77e5\u3055\u308c\u308b\u5834\u5408\u304c\u3042\u308b\u305f\u3081\u30e1\u30c3\u30bb\u30fc\u30b8\u306b\u30ea\u30af\u30a8\u30b9\u30c8\u5185\u5bb9\u306f\u542b\u3081\u306a\u3044)\r\n\t\t\t\tthrow new IOException(\"Http Response Error\" +\r\n\t\t\t\t\t\t\": Code=\" + Integer.toString(lastHttpStatus) + \r\n\t\t\t\t\t\t\": ResponseMessage=\" + connection.getResponseMessage() +\r\n\t\t\t\t\t\t\": ResponseXML=\" + responseString);\r\n\t\t\t}\r\n\r\n\t\t} finally {\r\n\t\t\t\/\/BufferedWriter\u3092\u89e3\u653e\r\n\t\t\tif (requestWriter != null) {\r\n\t\t\t\ttry{requestWriter.close();}\r\n\t\t\t\tcatch(Exception ex){System.out.println(ex);}\r\n\t\t\t}\t\t\t\t\r\n\t\t\t\/\/\u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u3092\u89e3\u653e\r\n\t\t\tif (connection != null) {\r\n\t\t\t\ttry{connection.disconnect();}\r\n\t\t\t\tcatch(Exception ex){System.out.println(ex);}\r\n\t\t\t}\t\t\t\t\r\n\t\t}\r\n\t\tSystem.out.println(\"\u25a0postSoapMessage End\"); \r\n\t\treturn responseString;\r\n\t}\r\n\r\n\t\/**\r\n\t * \u6587\u5b57\u5217\u8aad\u8fbc\u307f\r\n\t * <p>\r\n\t * InputStream\u304b\u3089\u6587\u5b57\u5217\u3092\u53d6\u5f97\u3059\u308b\u3002<br>\r\n\t * \u6539\u884c\u30b3\u30fc\u30c9\u304c\u5909\u66f4\u3055\u308c\u308b\u306e\u3092\u907f\u3051\u308b\u305f\u3081\u3001BufferedReader\u306f\u5229\u7528\u3057\u3066\u3044\u306a\u3044\u3002\r\n\t * @param stream\r\n\t * @param encode\r\n\t * @return \u53d6\u5f97\u6587\u5b57\u5217\r\n\t *\/\r\n\tprivate String readStream(InputStream stream, Charset encode) throws IOException{\r\n\t\tStringBuilder strb = new StringBuilder(\"\");\r\n\r\n\t\ttry(InputStreamReader reader = new InputStreamReader(stream, encode))\r\n\t\t{\r\n\t\t\tchar[] buf = new char[1024]; \/\/1024\u6587\u5b57\u305a\u3064\u53d6\u5f97\u3059\u308b\r\n\t\t\tint numRead;\r\n\t\t\twhile (0 <= (numRead = reader.read(buf))) {\r\n\t\t\t\tstrb.append(buf, 0, numRead);\r\n\t\t\t}\r\n\t\t}\r\n\t\t\/\/ \u7d50\u679c\u3092\u8fd4\u3059\r\n\t\treturn strb.toString();\r\n\t}\r\n}\r\n<\/pre>\n
\n
package soapsample;\r\n\r\nimport java.io.IOException;\r\n\r\npublic class SoapSample {\r\n\r\n\tpublic static void main(String[] args) {\r\n\t\tSoapRequestor sp = new SoapRequestor();\r\n\t\t\r\n\t\tString endPointUrl = \"http:\/\/localhost:8088\/mockpersonBinding\";\r\n\t\tString requestMessage = \r\n\t\t\t\t\"<soapenv:Envelope \" +\r\n\t\t\t\t\" xmlns:soapenv=\\\"http:\/\/schemas.xmlsoap.org\/soap\/envelope\/\\\" \" +\r\n\t\t\t\t\" xmlns:xsd=\\\"http:\/\/test.crmstyle.com\/person\/xsd\\\"> \" +\r\n\t\t\t\t\" <soapenv:Header\/> \" +\r\n\t\t\t\t\" <soapenv:Body> \" +\r\n\t\t\t\t\" <xsd:readRequest> \" +\r\n\t\t\t\t\" <xsd:searchCondition> \" +\r\n\t\t\t\t\" <xsd:column>name<\/xsd:column> \" +\r\n\t\t\t\t\" <xsd:condition> \" +\r\n\t\t\t\t\" <xsd:textData>\u30c6\u30b9\u30c8\u592a\u90ce<\/xsd:textData> \" +\r\n\t\t\t\t\" <\/xsd:condition> \" +\r\n\t\t\t\t\" <\/xsd:searchCondition> \" +\r\n\t\t\t\t\" <xsd:limit>100<\/xsd:limit> \" +\r\n\t\t\t\t\" <\/xsd:readRequest> \" +\r\n\t\t\t\t\" <\/soapenv:Body> \" +\r\n\t\t\t\t\"<\/soapenv:Envelope> \";\r\n\t\t\r\n\r\n\t\ttry {\r\n\t\t\tString responceMessage = sp.postSoapMessage(\r\n\t\t\t\t\tendPointUrl, \r\n\t\t\t\t\t\"read\", \r\n\t\t\t\t\trequestMessage, \r\n\t\t\t\t\t\"UTF-8\", \r\n\t\t\t\t\t60);\r\n\t\t\t\r\n\t\t\tSystem.out.println(\"Responce:\");\r\n\t\t\tSystem.out.println(responceMessage);\r\n\t\t\t\r\n\t\t} catch (IOException e) {\r\n\t\t\te.printStackTrace();\r\n\t\t}\t\t\r\n\t}\r\n\r\n}<\/pre>\n
\u5b9f\u9a13\u306e\u7d50\u679c<\/h3>\n
\nSoapUI\u306e\u30e2\u30c3\u30af\u306f\u30c0\u30df\u30fc\u3067\u56de\u7b54\u3059\u308b\u3060\u3051\u306a\u306e\u3067\u3001\u30e1\u30c3\u30bb\u30fc\u30b8\u306e\u5185\u5bb9\u307e\u3067\u306f\u30c1\u30a7\u30c3\u30af\u3057\u3066\u3044\u307e\u305b\u3093\u304c\u3001\u758e\u901a\u304c\u53d6\u308c\u308b\u3053\u3068\u306f\u78ba\u8a8d\u3067\u304d\u307e\u3057\u305f\u3002<\/p>\n\u3067\u3082XML\u6587\u66f8\u3092\u30d7\u30ed\u30b0\u30e9\u30e0\u304b\u3089\u4f5c\u6210\u3059\u308b\u306e\u306f\u9762\u5012<\/h2>\n
\n\u8907\u96d1\u306a\u69cb\u6210\u306e\u5834\u5408\u3001XML\u3092\u4f5c\u6210\u3059\u308b\u3053\u3068\u306b\u306a\u308a\u307e\u3059\u304c\u3001XML\u306b\u5909\u63db\uff08\u30b7\u30ea\u30a2\u30e9\u30a4\u30ba\uff09\u53ef\u80fd\u306a\u30d7\u30ec\u30fc\u30f3\u306a\u30af\u30e9\u30b9\u3092\u5229\u7528\u3059\u308b\u3053\u3068\u304c\u591a\u3044\u3067\u3057\u3087\u3046\u3002
\n\u305d\u306e\u4e00\u4f8b\u3068\u3057\u3066\u3001XSD\uff08XML Schema\uff09\u30d5\u30a1\u30a4\u30eb\u304b\u3089\u3001\u305d\u306e\u30af\u30e9\u30b9\u3092\u751f\u6210\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\nXSD\u30d5\u30a1\u30a4\u30eb\u306e\u4f5c\u6210<\/h3>\n
\n
<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<xsd:schema targetNamespace=\"http:\/\/test.crmstyle.com\/person\/xsd\" \r\n xmlns=\"http:\/\/www.w3.org\/2001\/XMLSchema\" \r\n xmlns:xsd=\"http:\/\/www.w3.org\/2001\/XMLSchema\" \r\n xmlns:xsd1=\"http:\/\/test.crmstyle.com\/person\/xsd\" \r\n elementFormDefault=\"qualified\" \r\n attributeFormDefault=\"qualified\">\r\n <complexType name=\"select\">\r\n <attribute name=\"value\" type=\"xsd:int\" use=\"required\"\/>\r\n <attribute name=\"text\" type=\"xsd:string\" use=\"optional\"\/>\r\n <\/complexType>\r\n\r\n <complexType name=\"selectList\">\r\n <sequence>\r\n <element maxOccurs=\"unbounded\" minOccurs=\"0\" name=\"select\" type=\"xsd1:select\"\/>\r\n <\/sequence>\r\n <\/complexType>\r\n\r\n <complexType name=\"complexData\">\r\n <choice>\r\n <element name=\"textData\" nillable=\"true\" type=\"xsd:string\"\/>\r\n <element name=\"selectData\" type=\"xsd1:selectList\"\/>\r\n <\/choice>\r\n <attribute name=\"op\" type=\"xsd:string\" use=\"optional\"\/>\r\n <\/complexType>\r\n\r\n <complexType name=\"person\">\r\n <all>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"mailaddress\" type=\"xsd:string\"\/>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"name\" type=\"xsd:string\"\/>\r\n <element maxOccurs=\"1\" minOccurs=\"0\" name=\"birthday\" nillable=\"true\" type=\"xsd:date\"\/>\r\n <\/all>\r\n <\/complexType>\r\n\r\n <complexType name=\"searchCondition\">\r\n <all>\r\n <element name=\"column\" type=\"xsd:string\"\/>\r\n <element name=\"condition\" type=\"xsd1:complexData\"\/>\r\n <\/all>\r\n <\/complexType>\r\n\r\n <element name=\"fault\">\r\n <complexType>\r\n <sequence>\r\n <element name=\"errorCode\" type=\"xsd:int\"\/>\r\n <element name=\"errorMessage\" type=\"xsd:string\"\/>\r\n <\/sequence>\r\n <\/complexType>\r\n <\/element>\r\n\r\n <element name=\"readRequest\">\r\n <complexType>\r\n <all>\r\n <element name=\"searchCondition\" type=\"xsd1:searchCondition\"\/>\r\n <element minOccurs=\"0\" name=\"limit\" type=\"xsd:int\"\/>\r\n <\/all>\r\n <\/complexType>\r\n <\/element>\r\n <element name=\"readResponse\">\r\n <complexType>\r\n <sequence>\r\n <element name=\"count\" type=\"xsd:int\"\/>\r\n <element maxOccurs=\"100\" minOccurs=\"0\" name=\"person\" type=\"xsd1:person\"\/>\r\n <\/sequence>\r\n <\/complexType>\r\n <\/element>\r\n<\/xsd:schema><\/pre>\n
XSD\u30d5\u30a1\u30a4\u30eb\u306e\u6d3b\u7528\u4f8b<\/h3>\n
filename size\r\n-----------------------------------\r\nComplexData.java 3,585\r\nFault.java 2,507\r\nObjectFactory.java 3,894\r\nPerson.java 3,618\r\nReadRequest.java 2,730\r\nReadResponse.java 2,849\r\nSearchCondition.java 2,626\r\nSelect.java 2,295\r\nSelectList.java 2,324<\/pre>\n
\n\u4f5c\u6210\u3055\u308c\u305f\u30bd\u30fc\u30b9\u3092\u78ba\u8a8d\u3059\u308b\u3068\u3001\u4eca\u56de\u306f\u3001birthday\u9805\u76ee\u306bxsd:date\u3068\u3044\u3046\u65e5\u4ed8\u578b\u3092\u5229\u7528\u3057\u305f\u305f\u3081\u3001Person\u30af\u30e9\u30b9\u306e\u5916\u5074\u3067JAXB\u306e\u30af\u30e9\u30b9\u3092\u53c2\u7167\u3059\u308b\u5fc5\u8981\u304c\u3067\u3066\u3057\u307e\u3063\u305f\u306e\u3067\u3001\u6587\u5b57\u5217\u578b\uff08xsd:string\uff09\u306b\u4fee\u6b63\u3057\u305f\u307b\u3046\u304c\u6271\u3044\u6613\u3044\u5834\u5408\u3082\u3042\u308b\u3067\u3057\u3087\u3046\u3002<\/p>\npublic JAXBElement<XMLGregorianCalendar> getBirthday() {\r\n return birthday;\r\n}\r\npublic void setBirthday(JAXBElement<XMLGregorianCalendar> value) {\r\n this.birthday = value;\r\n}<\/pre>\n
XML\u6587\u66f8\u3067\u9023\u643a\u3067\u304d\u308b\u3068\u898b\u3048\u3066\u304f\u308b\u3082\u306e<\/h2>\n
\u30aa\u30f3\u30e9\u30a4\u30f3\u51e6\u7406\u4ee5\u5916\u3067\u306e\u6d3b\u7528<\/h3>\n
\n\u30ec\u30b3\u30fc\u30c9\u6570\u304c\u305d\u308c\u307b\u3069\u591a\u304f\u306a\u3044\u8efd\u91cf\u306a\u30d0\u30c3\u30c1\u51e6\u7406\u3084\u3001\u3042\u308b\u7a0b\u5ea6\u30c7\u30fc\u30bf\u3092\u84c4\u3048\u3066\u9023\u643a\uff08\u30c7\u30a3\u30ec\u30fc\u30c9\u51e6\u7406\uff09\u3092\u7e70\u308a\u8fd4\u3059\u5834\u5408\u3001\u30aa\u30f3\u30e9\u30a4\u30f3\u5411\u3051\u306b\u7528\u610f\u3055\u308c\u305f\u6a5f\u80fd\u3092\u6d41\u7528\u3059\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002
\n\u305d\u306e\u3088\u3046\u306a\u5834\u5408\u306b\u3001XML\u3067\u306e\u9023\u643a\u304c\u53ef\u80fd\u306a\u3089\u3070\u3001\u6d3b\u7528\u306e\u7528\u9014\u304c\u5e83\u304c\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\nETL(Extract\/Transform\/Load)\u30c4\u30fc\u30eb\u306e\u6d3b\u7528<\/h3>\n
\n\u3082\u3061\u308d\u3093\u3001ETL\u30c4\u30fc\u30eb\u306e\u591a\u304f\u306fSOAP\u30b3\u30cd\u30af\u30bf\u3092\u63d0\u4f9b\u3057\u3066\u3044\u307e\u3059\u304c\u3001SOAP\u306e\u76f8\u6027\u554f\u984c\u306b\u3088\u308a\u3001\u5b9f\u969b\u306b\u901a\u4fe1\u3067\u304d\u306a\u3044\u30b1\u30fc\u30b9\u304c\u591a\u304f\u3042\u308a\u307e\u3059\u3002
\n\u3053\u306e\u3088\u3046\u306a\u5834\u5408\u306b\u3001\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u30b3\u30cd\u30af\u30bf\u3092\u4f5c\u6210\u53ef\u80fd\u306aETL\u30c4\u30fc\u30eb\u3092\u5229\u7528\u3059\u308c\u3070\u3001\u30a4\u30f3\u30d7\u30c3\u30c8\uff0f\u30a2\u30a6\u30c8\u30d7\u30c3\u30c8\u3092XML\u3068\u3057\u3066\u3001ETL\u30c4\u30fc\u30eb\u3067\u4ed6\u306e\u30b7\u30b9\u30c6\u30e0\u3068\u9023\u643a\u3067\u304d\u307e\u3059\u3002
\nETL\u30c4\u30fc\u30eb\u306e\u6d3b\u7528\u306b\u3064\u3044\u3066\u306f\u3001\u307e\u305f\u306e\u6a5f\u4f1a\u306b\u8a66\u3057\u3066\u307f\u305f\u3044\u3068\u601d\u3044\u307e\u3059\u3002<\/p>\n\u4eca\u56de\u306e\u307e\u3068\u3081<\/h2>\n
\n
<\/p>\n
\n\u904e\u53bb\u306b\u3064\u307e\u305a\u3044\u305f\u7d4c\u9a13\u306a\u3069\u3082\u8a18\u8f09\u3057\u3066\u3044\u308b\u305f\u3081\u3001\u5c11\u3057\u9577\u3044\u3067\u3059\u304c\u304a\u4ed8\u304d\u5408\u3044\u304f\u3060\u3055\u3044\u3002<\/p>\n