はじめに
http://blogs.yahoo.co.jp/dk521123/31944955.htmlで、環境構築をするのに、HelloWorld的なWebサービスを例に上げたが、 以下「設定環境」で構築した際に、手順を改めて纏める
設定環境
* OS : Win10 * JDK : Ver1.8 * Eclipse : Eclipse Java EE IDE for Web Developers / Version: Mars.2 Release (4.5.2) * Tomcat : Ver8.0.33 * Axis2 : Ver1.7.2Axis2
https://axis.apache.org/axis2/java/core/download.html
構築手順
http://blogs.yahoo.co.jp/dk521123/31944955.htmlの「手順」を参照。
注意
ただし、Tomcat実行時に、 エラー「NoClassDefFoundError: org/apache/ws/commons/schema/resolver/URIResolver」が表示される などのトラブルがあった。詳細は以下の関連記事を参照のこと。http://blogs.yahoo.co.jp/dk521123/36056349.html
サンプル
SampleWebMain.java
package com.sample; import javax.jws.WebMethod; import javax.jws.WebService; //JAX-WSを使用する場合 //@WebService(serviceName = "SampleWebMainServiceWithJaxWs") public class SampleWebMain { @WebMethod public String sayHello(String name) { return "Hello, " + name + "!"; } }
services.xml
SampleWeb/WebContent/WEB-INF/services/SampleWebMain/META-INF/services.xml(Eclipseプロジェクト名「SampleWeb」の場合)<service name="SampleWebMainService"> <Description> Please Type your service description here </Description> <messageReceivers> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <parameter name="ServiceClass" locked="false">com.sample.SampleWebMain</parameter> </service>
動作確認
[1] ブラウザ
* ブラウザで以下にアクセスする(Eclipseプロジェクト名「SampleWeb」の場合) => エラーがなければOK[[http://localhost:8080/SampleWeb/]
[http://localhost:8080/SampleWeb/services/listServices]
* 以下にアクセスすれば、WSDLファイルが取得できる
[http://localhost:8080/SampleWeb/services/SampleWebMainService?wsdl]
[2] ツールを使って、リクエストを投げてみる
* Chrome のSOAP & REST Client用プラグイン「Boomerang(ブーメラン)」で動作確認を行う * 別ツールとして、「SoapUI」もあるhttp://blogs.yahoo.co.jp/dk521123/32212829.html
リクエスト
<x:Envelope xmlns:x="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sam="">http://sample.com/"> <x:Header/> <x:Body> <sam:sayHello> <arg0>Mike</arg0> </sam:sayHello> </x:Body> </x:Envelope>
レスポンス(出力結果)
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="">http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header></soapenv:Header> <soapenv:Body> <dlwmin:sayHelloResponse xmlns:dlwmin="http://sample.com/" xmlns:xsi="">http://www.w3.org/2001/XMLSchema-instance"> <return>Hello, Mike!</return> </dlwmin:sayHelloResponse> </soapenv:Body> </soapenv:Envelope>