【Axis2】【Eclipse】 Axis2 と Eclipse を使って、 新規にWebサービスを構築する

はじめに

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.2
Axis2
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.xmlEclipseプロジェクト名「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] ツールを使って、リクエストを投げてみる

 * ChromeSOAP & 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>

関連記事

Axis2Webサービスを構築した際のトラブルシューティング

http://blogs.yahoo.co.jp/dk521123/36056349.html

Axis2Eclipse を使ったWebサービスでクラスをやり取りするには...

http://blogs.yahoo.co.jp/dk521123/36128161.html

SoapUI について ~SOAPに関するテストツール~

http://blogs.yahoo.co.jp/dk521123/32212829.html