SoapUIを使ってレスポンスを確認（今さらだがSoapサーバの環境構築をするの続き）

[今さらだがSoapサーバの環境構築をする(Eclipse+Axis+Tomcat)](https://qiita.com/masashi_t_0609/items/74ca9934af13220478d8)の続きです。SoapUIを使ってレスポンスの確認をします。

## 開発環境
- Windows 10 Pro
- Eclipse Version: 2019-03 (4.11.0)
- Axis 1.7.9
- Java8
- Tomcat8
- SoapUI 5.5.0

## 参考
- [Axis2でRESTでアクセスしようとしたときにorg.apache.axis2.AxisFault: The ServiceClass object does not implement the required method in the following form: OMElement …と出てくるとき](https://debuyan.wordpress.com/2016/12/26/axis2%e3%81%a7rest%e3%81%a7%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%81%97%e3%82%88%e3%81%86%e3%81%a8%e3%81%97%e3%81%9f%e3%81%a8%e3%81%8d%e3%81%aborg-apache-axis2-axisfault-the-serviceclass-object-does/)

## いくよー！

### 1. SOAPプロジェクトの追加

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/e546246c-b226-1c08-d5cd-0c3c05b711d9.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/4c3ed61b-f89a-30e7-505b-2a1bf04177e0.png)

### 2. リクエストを送信

とりあえず、`HelloWorldSoap11Binding`の最下層に`Request 1`があるので、ダブルクリックすると右ペインにxmlが現れます。▶のボタンを押すとリクエストが送信されるのでやってみます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/e56447da-e77c-67ba-2c6b-85171c29d135.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/ff2d4be5-5436-dfb7-5149-b4bc6be20add.png)

おそらく、このレスポンスになると思います。

```xml:response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
      <soapenv:Fault>
         <faultcode>soapenv:Server</faultcode>
         <faultstring>The ServiceClass object does not implement the required method in the following form: OMElement get(OMElement e)</faultstring>
         <detail/>
      </soapenv:Fault>
   </soapenv:Body>
</soapenv:Envelope>
```

いろいろ漁ってると、`services.xml`というのが原因らしいので、このファイルを修正します。

### 3. services.xmlの修正

`/SoapServerTest/WebContent/WEB-INF/services/HelloWorld/META-INF/services.xml`にあるので、開きます。
messageReciverのmepに定義値を直します。
※axis2.xmlに定義しているmessageReciverのmepと合わせる必要があるらしい。

```xml:before
<service name="HelloWorld" >
	<Description>
		Please Type your service description here
	</Description>
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
		<messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
	<parameter name="ServiceClass" locked="false">HelloWorld</parameter>
</service>
```

```xml:after
<service name="HelloWorld" >
	<Description>
		Please Type your service description here
	</Description>
	<messageReceivers>
<!--
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
		<messageReceiver  mep="http://www.w3.org/2004/08/wsdl/in-out"  class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
-->
		<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">HelloWorld</parameter>
</service>
```

### 4. SOAPサーバを再起動して、再度SoapUIで確認

[2. リクエストを送信](#2-リクエストを送信)を再実行。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/9980328d-4153-39fd-9a20-8248a1caedb4.png)

```xml:response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header/>
   <soapenv:Body>
      <ns:getResponse xmlns:ns="http://ws.apache.org/axis2">
         <ns:return>Hello World!</ns:return>
      </ns:getResponse>
   </soapenv:Body>
</soapenv:Envelope>
```

Hello World!が返ってきました！！！やったね！！！！

以上！！！