このサイトをビューするために JavaScript を有効化してください。

Altova MapForce 2020 Enterprise Edition

このサンプルは MapForce を使用して SOAP Web サービスを生成する方法について説明しています。プログラムコード 次のパスで見つけることのできるサンプル MapForce プロジェクトから Java プログラムコードを生成します: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\Query Person database.mfp。 このプロジェクトは2つのオペレーションを公開する SOAP Web サービス実装します。: getPersonputPerson. この Web サービスは個人の詳細を抽出、または追加するために上記のオペレーションをおこない、背景で Microsoft Access データベースと通信します。MapForce 内でこのようなプロジェクトを作成するサンプルに関しては、次を参照してください: SOAP Web サービスプロジェクトの作成.

 

生成されたJava コードをコンパイルするために、このサンプルは Java 7 と Apache Ant を必要とします。.aar ファイルは  Axis2  がインストールされた状態で作動中の  Apache Tomcat  にデプロイされます。

 

簡素化のためこのサンプルは基本の Web サーバー構成を使用していることに注意してください。生産環境では、 Web サーバー、または所属機関内のセキュリティポリシー、その他の要素が指定するとおりの異なるアプローチを使用しなければならない場合があります。

 

SOAP Web サービスを呼び出すために、このサンプルは XMLSpy Enterprise Edition を使用しています。XMLSpy がない場合、 Web サービスをテストするために、SOAP クライアントまたは Web サービスを呼び出すことのできるプログラムコードが必要になります。

 

メモ:上記のとおり、 この Web サービスのサンプルは Microsoft Access データベースにアクセスします。Java 7 を使用すると、 Java 内に含まれる ODBC-JDBC ブリッジを使用して Access データベースに接続できるようになります。しかしながら、 ODBC-JDBC ブリッジは Java 8 内から削除さるため、 Oracle はベンダーから提供される JDBC ドライバーの使用を奨励しています。次を参照してください: http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/bridge.html。 このサンプルを Java 8 または更に新しい環境で作動するには、 Microsoft Access データベースに接続することのできる第三者パーティの JDBC ドライバーが必要になります。

 

ステップ 1: query.wsdl ファイルの準備

このサンプル Web サービスは次の WSDL ファイルが基礎になっています: <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\query.wsdl。 デフォルトでは、 query.wsdl ファイルは C# と Java のためのサービスの詳細を1つの箇所がコメントアウトされている2つの異なる箇所で定義しています。ですから Java コードを生成前に、 query.wsdl ファイル内の次のセクションをロケートし、コメントアウトされていることを確認してください:

 

  <!--service name="WS2DB">
     <port name="WS2DBSoapPort" binding="tns:WS2DBSoapBinding">
        <soap:address location="http://localhost/WS2DB/WS2DB.asmx"/>
     </port>
  </service-->

 

(Java にのみ適用可能な )  次のセクションがコメントアウトされていないことを確認してください:

 

  <service name="WS2DB">
    <port name="WS2DBSoapPort" binding="tns:WS2DBSoapBinding">
        <soap:address location="http://localhost:8080/axis/services/WS2DB"/>
    </port>
  </service>

 

ステップ 2: Java コードの生成とビルド

MapForce 実行し、 <マイ ドキュメント>\Altova\MapForce2020\MapForceExamples\Tutorial\ フォルダーから 「Query Person database.mfp」プロジェクトを開きます。プロジェクトウィンドウ内のプロジェクトを右クリックし、「コードの生成 | Java」 を選択します。MapForce はプログラムコードを生成し、メッセージウィンドウ内に結果を表示します:

mff_soap_java_ex01

 

デフォルトでは、 コードはプロジェクトのディレクトリに対応する「出力」と呼ばれるサブディレクトリに生成されます。このチュートリアルのスコープのため、デフォルトの設定がそのままにされています。出力ディレクトリを変更するには、次を参照してください: コード生成設定の設定.

 

Java コードをビルドするには、build.xml ファイルとして同じディレクトリ内でコマンドラインから Ant を実行します。

mff_soap_java_ex02

 

この結果、 Query_Person_database.aar と呼ばれる Axis Archive (.aar) ファイルが出力ディレクトリ内で生成されます。

 

上記のとおりディレクトリから Ant を呼び出す前に、インストールと構成を正しくおこなう必要があります。簡単な概要は、以下のとおりです (詳細に関しては Ant のマニュアルを参照してください: http://ant.apache.org):

 

PATH 環境関数 は Ant ルートディレクトリの "bin" サブディレクトリへのパスを含む必要があります。

ANT_HOME 環境関数は Ant がインストールされるディレクトリを設定する必要があります。

AXIS2_HOME 環境変数は Axis2 の標準の配布がインストールされているディレクトリに設定されている必要があります。

JAVA_HOME 環境関数は Java JDKがインストールされるディレクトリを設定する必要があります。

コマンドラインに 「ant」 を入力してが作動しているかを確認してください。メッセージ 「Buildfile: build.xml は存在しません!」 は Ant が構成されており、ビルドファイルが検索されていることを意味します。

 

ステップ 3: Web サービスを Axis 2 にデプロイする

このサンプルでは、Web サービスは Axis2 管理ページから Tomcat にアップロードされます。 後者はインストール後、サーバーに以下のように作動中の Tomcat サーバーにデプロイされることができます (詳細に関しては、 Axis2 ドキュメントを参照してください):

 

1.Axis2 WAR (Web Archive) 配布を http://axis.apache.org/axis2/java/core/download.html からダウンロードしてください。

2.ローカルディレクトリでダウンロードされたパッケージをアンパックしてください。

3.axis2.war ファイルを Tomcat のディレクトリ %CATALINA_HOME%\webapps.にコピーしてください。

4.http://localhost:8080/axis2 を開き、 Axis2が作動しているか確認してください。

 

Axis2 Web 管理者ページを開き、 前のステップで生成された.aar ファイルをアップロードします。

mff_soap_java_ex03

「WS2DB」 と呼ばれる新規の Web サービスが Axis2 管理者ページ内でアクティブになり使用することができます。

mff_soap_java_ex04

 

Web サービスの呼び出し

文字通り上記のステップをおこなうと、Web サービスの WSDL は以下で使用することができます: http://localhost:8080/axis2/services/WS2DB?wsdl。 デプロイした Web サービスを呼び出すには、 他の SOAP クライアントを使用することもできますが、XMLSpy を使用します。

 

XMLSpy (Enterprise Edition) を起動します。SOAP メニューから「新規の SOAP リクエストを作成」をクリックします。プロンプトされると、 Web サービスの WSDL を入力します (このサンプルでは http://localhost:8080/axis2/services/WS2DB?wsdl)。

mff_soap_java_ex05

 

「OK」をクリックします。SOAP オペレーションを選択するようにプロンプトされると、putPerson を選択します。

mff_soap_java_ex06

 

XMLSpy は次のようなサンプルリクエストを生成します。

 

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://www.altova.com/WS2DB.xsd">
  <SOAP-ENV:Body>
    <putPerson SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <Put xsi:type="m0:Person">
          <First xsi:type="xsd:string">String</First>
          <Last xsi:type="xsd:string">String</Last>
          <Title xsi:type="xsd:string">String</Title>
          <PhoneEXT xsi:type="xsd:string">String</PhoneEXT>
          <Email xsi:type="xsd:string">String</Email>
        </Put>
    </putPerson>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

 

「文字列」を Web サービスに入力として提供する個人の詳細と置き換えます。このサンプルのスコープのために 下のようなリクエストを使用することができます:

 

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:m0="http://www.altova.com/WS2DB.xsd">
  <SOAP-ENV:Body>
    <putPerson SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <Put xsi:type="m0:Person">
          <First xsi:type="xsd:string">John</First>
          <Last xsi:type="xsd:string">Doe</Last>
          <Title xsi:type="xsd:string">Mr</Title>
          <PhoneEXT xsi:type="xsd:string">123</PhoneEXT>
          <Email xsi:type="xsd:string">john.doe@example.org</Email>
        </Put>
    </putPerson>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

サーバー上でリクエストを送信することができます。SOAP メニューから 「サーバーにリクエストを送信する」 をクリックします。SOAP リクエスト設定ダイアログボックスが開かれます。

mff_soap_java_ex07

 

「OK」をクリックします。 XMLSpy は呼び出しを開始し、エディター内にレスポンスを返します。下のイメージは正しいレスポンスを表示しています。

mff_soap_java_ex08

上記のアプローチを使用して、この Web サービスにより公開される getPerson オペレーションを呼び出すこともできます。詳細な手順 に関しては、 C# チュートリアル内の Web サービスの呼び出しセクションを参照してください。 WSDL URL のみが C# チュートリアル内で異なりますが、その他の Web サービスの呼び出しのための命令は同じです。

(C) 2019 Altova GmbH