今さらだがSoapサーバの環境構築をする(Eclipse+Axis+Tomcat)

仕事でSOAPを使うことになって、本番環境は相手先のSOAPサーバがすでにあるから問題ないけど、ローカルで開発するとき用のSOAPサーバがないので、まずはEclipseを使って立てられるかを試してみました。

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

## 参考
- [macOSにてAxis2+TomcatのWebサービスを作る](https://reddevil23.hatenadiary.jp/entry/axis2_macOS)
- [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/)

## 準備：色々ダウンロード

|ファイル名|URL|説明|
|---|---|---|
|axis2-1.7.9-bin.zip|http://axis.apache.org/axis2/java/core/download.html|WebサービスのフレームワークでSOAPを使うときに便利。これ使います。|
|taglibs-standard-impl-1.2.5.jar|http://tomcat.apache.org/download-taglibs.cgi|デフォルトだと解決できないタグがあるので追加する必要がある。|
|xmlschema-core-2.2.3.jar|http://ftp.kddilabs.jp/infosystems/apache/ws/xmlschema/2.2.5/|Tomcatが参照するライブラリ群に追加する。|

## いくよー！

### 1. `axis2-1.7.9-bin.zip`の展開

普通にzipを展開してください。

### 2. Eclipseの設定からAxis2の設定

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/4572a949-f379-16a6-03ff-31d808716928.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/24d5c78c-f505-606d-dbf7-8040a10ea283.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/dcc31405-e9af-ff51-1970-80b563b853a6.png)

### 3. 動的プロジェクトの作成

気をつけることがいくつかあります。
- 動的 web モジュール バージョンは2.5以下にすること
- プロジェクトファーセットから`Axis2 Web サービス`にチェックすること

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/4def7f9a-916a-9206-a5d4-6c579946e55d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/2b95f4c9-8a35-fd77-65e9-016428b1988d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/7ac22564-22fe-386f-efe7-94f32c93c066.png)

### 4. 外部Jarの追加（taglibs-standard-impl-1.2.5.jar）

事前にダウンロードした`taglibs-standard-impl-1.2.5.jar`をプロジェクトで参照できるように追加します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/9db9bae6-b853-7844-ee55-e860b80d97d0.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/39633636-672c-31f6-7419-b297d9dd69af.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/d9beb6d5-bcae-4a8d-2e77-687bec566b4f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/fc356da6-90ce-b5e3-f2bf-2b0b0a805c24.png)

### 5. 動作確認用のクラスを作成

`src`配下に適当なクラスを作成します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/92489380-09c4-c4ed-1b65-4e5807971072.png)

```java:HelloWorld.java
public class HelloWorld {
    public String get() {
        return "Hello World!";
    }
}
```

### 6. xmlschema-core-2.2.3.jar

Tomcatのフォルダを探して、libフォルダにJarを格納します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/2e10be09-ae07-781e-e0e9-cfa4a846b949.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/a68b66b7-687c-3275-e80e-4e3ef5c1c56c.png)

### 7. Webサービスの作成

`HelloWorld.java`を右クリックして、Webサービスの作成を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/4efb1226-2346-85a2-753d-63384d1f8003.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/0d44096a-50f5-1a7a-b267-54e0f0506f04.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/6af45753-5aca-6479-56b8-4f69f03b586e.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/2ac4c51d-f235-5de8-efc3-f677b92f9db8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/c4b470b1-7d41-fa88-5f42-5d08cc143de5.png)

### 8. 動作確認

サーバが起動したら、以下URLにアクセスしてみる。
http://localhost:8080/SoapServerTest/services/HelloWorld?wsdl
※`http://localhost:8080/{プロジェクト名}/services/{クラス名}?wsdl`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/506724/a6a58f01-924e-ee2b-31d2-a5e288884dc3.png)

SOAPサーバはこれでOK!!!

次はSOAPUIを使ってレスポンスを確認したいと思います！！！