---
schema_version: "1"
id: 77c34a4d99b0d42a77977ee1e2a79b17e5fbc0f118f892b8a2805c59a5b4ba97
title: SOAP API プロキシの構築
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/api-manager/latest/building-soap-proxy.md
canonical_url: https://docs.mulesoft.com/jp/api-manager/latest/building-soap-proxy
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 88559906de24d481025814e907ec5c6211b198dc6bd4c1ed5fc4496e297b11af
description: MuleSoft Documentation Site
release: 2.x
latest: true
---
# SOAP API プロキシの構築

API Manager 2.x では、SOAP ベースの Web サービスに SOAP API プロキシを使用できます。SOAP プロキシには、バックエンドサービスを説明する WSDL 定義が必要です。WSDL は、API プロキシが受信要求の検証を実行し、対応する API エンドポイントのアウトバウンド要求を適切に転送する方法を定義します。

## [](#soap-プロキシスキーマの検証)SOAP プロキシスキーマの検証

API に対する検証が有効かどうかに関係なく、SOAP 要求検証機能で常に次の点が確認されます。

- インバウンド要求に有効な SOAP アクションが設定されている。
- ペイロードが有効な SOAP エンベロープである。

API に対する検証が有効の場合は、SOAP 要求検証機能で、​`body`​ タグのコンテンツが WSDL で定義されているものと一致しているかどうかも確認されます。インバウンド要求の SOAP アクションが WSDL の同じ名前の操作と照合されます。その後、要素の名前空間 URI と操作に関連付けられた名前が受信要求の同じ詳細と一致することがプロキシによって検証されます。

この検証に失敗した場合、必要な名前空間 URI と要素名を通知するエラーメッセージが生成されます。インバウンド要求の SOAP アクションが空の場合、アプリケーションは名前空間 URI と受信要求要素の要素名を WSDL で定義されたすべての操作と照合します。

受信要求と一致する最初の操作により、検証が成功したかどうかが決まります。照合に失敗した場合、要求の要素の推奨タグ名を含むエラーメッセージが生成されます。

## [](#プロキシアプリケーションからの-wsdl-の取得)プロキシアプリケーションからの WSDL の取得

SOAP プロキシを使用すると、バックエンド Web サービスは要求を送信 (POST) したり、サービス WSDL を取得 (GET) したりできます。GET 要求は、クエリパラメーターとして ​`wsdl`​ または ​`WSDL`​ を使用する HTTP GET メソッドによって実行されます。

- `[http://my-proxy-url:myProxyPort?wsdl](http://my-proxy-url:myProxyPort?wsdl)`
- `[http://my-proxy-url:myProxyPort?WSDL](http://my-proxy-url:myProxyPort?WSDL)`

## [](#基本認証ログイン情報を使用したリモートロケーションからの-wsdl-の設定)基本認証ログイン情報を使用したリモートロケーションからの WSDL の設定

`basicauth.properties`​ 設定ファイルで ​`basic.auth.user`​ および ​`basic.auth.password`​ アプリケーションプロパティを設定することで、リモートロケーションでホストされている保護された WSDL にアクセスできます。次に、これらのプロパティはバリデーターモジュールに渡されます。

```xml
<soap-request-validator:config name="validator-config" wsdlLocation="http://myremoteurl:9092/service?wsdl" serviceName="myServiceName"
                                   servicePort="myServicePort" schemaValidationEnabled="true"
                                   basicAuthUser="${basic.auth.user}" basicAuthPassword="${basic.auth.password}"/>
```

これらのプロパティで認証値を指定しない場合、WSDL は認証されずに取得されます。

## [](#tls-を使用した-wsdl-の取得)TLS を使用した WSDL の取得

SOAP プロキシ v2.1.0 を使用すると、デフォルトで TLS コンテキスト設定を使用してリモートロケーションから WSDL を取得できます。この操作で使用する TLS コンテキストは、プロキシのアウトバウンド設定と同じです。

## [](#soap-プロキシを設定する)SOAP プロキシを設定する

SOAP プロキシを設定するには、以下の手順を完了します。

1. **\[Anypoint Platform\]**​ > ​**\[API Manager\]**​ に移動します。
2. **\[API Administration (API 管理)\]**​ で、​**\[Add API (API を追加)\]**​ をクリックし、​**\[Add new API (新しい API を追加)\]**​ をクリックします。
3. ランタイムとして ​**\[Mule Gateway (Mule ゲートウェイ)\]**​ を選択します。
4. **\[Proxy type (プロキシ種別)\]**​ で ​**\[Deploy a proxy application (プロキシアプリケーションをデプロイ)\]**​ を選択します。
5. プロキシアプリケーションのデプロイを選択した場合は、以下のオプションから​**対象種別**​を選択します。
    
    - **CloudHub 2.0**​: コンテナベースのクラウドインフラストラクチャで MuleSoft によってホストされている Mule Runtime を使用する場合は、このオプションを選択します。CloudHub 2.0 プロキシには、デフォルトで 0.1 vCore の CPU が含まれています。
        
        1. スペースを選択します。
            
            スペースについての詳細は、​[Shared Spaces](https://docs.mulesoft.com/cloudhub-2/ch2-shared-space-about) and [Private Spaces](https://docs.mulesoft.com/cloudhub-2/ch2-private-space-about)​を参照してください。
        2. **\[Runtime Version (ランタイムバージョン)\]**​ で、次の操作を実行します。
            
            1. **\[Runtime Channel (ランタイムチャネル)\]**​ を選択します。
            2. Mule Runtime の ​**\[Version (バージョン)\]**​ を選択します。
            3. **\[Java version (Java バージョン)\]**​ を選択します。
        3. **\[Proxy app name (プロキシアプリケーション名)\]**​ を入力します。
    - **CloudHub:**​ MuleSoft によってクラウドでホストされている Mule Runtime を使用する場合は、このオプションを選択します。CloudHub プロキシには、デフォルトで 0.1 vCore の CPU と 500 MB のメモリが含まれています。
        
        1. **\[Runtime Version (ランタイムバージョン)\]**​ で、次の操作を実行します。
            
            1. **\[Runtime Channel (ランタイムチャネル)\]**​ を選択します。
            2. Mule Runtime の ​**\[Version (バージョン)\]**​ を選択します。
            3. **\[Java version (Java バージョン)\]**​ を選択します。
        2. **\[Proxy app name (プロキシアプリケーション名)\]**​ を入力します。
    - **Hybrid (ハイブリッド):**​ Runtime Manager に登録されているオンプレミスサーバーで実行される Mule Runtime インスタンスを使用する場合、このオプションを選択します。
        
        詳細は、​[「Runtime Manager でのサーバーの登録」](https://docs.mulesoft.com/jp/runtime-manager/servers-create)​を参照してください。
        
        1. リストから接続先を選択するか、​**\[Add server (サーバーを追加)\]**​ をクリックします。
        2. **\[Proxy app name (プロキシアプリケーション名)\]**​ を入力します。
    - **Self-managed Server (自己管理型サーバー):**​ JAR ファイルを作成して、Runtime Manager に登録されていないオンプレミスサーバーで実行される Mule Runtime インスタンスに API プロキシをデプロイする場合、このオプションを選択します。詳細は、[On-Premises Mule Runtime Deployment Model](https://docs.mulesoft.com/on-premises/latest/mule-deployment-model)を参照してください。

API Manager で API プロキシを自己管理型サーバーにデプロイしても、プロキシはオンプレミスサーバーにデプロイされません。API Manager でプロキシをデプロイした後に、プロキシをオンプレミスサーバーにデプロイします。 . [新しい API プロキシ JAR ファイルをダウンロードします](https://docs.mulesoft.com/jp/api-manager/latest/download-proxy-task)​。 . [JAR ファイルをオンプレミスサーバーにデプロイします](https://docs.mulesoft.com/mule-runtime/latest/deploy-on-premises)​。

- **Runtime Fabric:**​ Runtime Fabric で管理された Mule Runtime Engine に API プロキシをデプロイする場合、\[Runtime Fabric\] を選択します。 詳細は、​[「Runtime Fabric への API プロキシのデプロイ」](https://docs.mulesoft.com/runtime-fabric/latest/proxy-deploy-runtime-fabric)​を参照してください。
    
    1. リストから対象を選択します。
    2. **\[Runtime Version (ランタイムバージョン)\]**​ で、次の操作を実行します。
        
        1. **\[Runtime Channel (ランタイムチャネル)\]**​ を選択します。
        2. Mule Runtime の ​**\[Version (バージョン)\]**​ を選択します。
        3. **\[Java version (Java バージョン)\]**​ を選択します。
    3. **\[Proxy app name (プロキシアプリケーション名)\]**​ を入力します。
        
        1. 以下のオプションから API を選択します。
- 管理する API を Exchange を介して共有している場合、​**\[Select API from Exchange (Exchange から API を選択)\]**​ をクリックします。
    
    1. **\[Select API (API を選択)\]**​ の下のリストから API をクリックします。必要に応じて、特定の API を検索できます。
    2. 最新バージョンを使用していない場合は、​**\[Asset type (アセットタイプ)\]**​、​**\[API version (API バージョン)\]**​、および ​**\[Asset version (アセットバージョン)\]**​ を更新します。
        
        Exchange でのバージョンについての詳細は、[アセットバージョン](https://docs.mulesoft.com/jp/exchange/asset-versions)を参照してください。
    3. **\[RAML/OAS\]**​ アセットタイプを選択した場合は、API の ​**\[Conformance Status (準拠状況)\]**​ を表示して、API が準拠していることを確認します。​**\[Conformance Status (準拠状況)\]**​ が非準拠の場合、デプロイ後に​**ガバナンスレポート**​を表示して、準拠の問題を見つけて修正します。​**ガバナンスレポート**​についての詳細は、[API インスタンスの管理](https://docs.mulesoft.com/jp/api-manager/latest/govern-api-instances)を参照してください。
- **\[Create new API (新しい API を作成)\]**​ をクリックします。
    
    1. 新しい API アセットの​**名前**​を入力します。
    2. **アセットタイプ**​として ​**SOAP API**​ を選択します。
    3. メソッドとして、​**\[Upload a WSDL (WSDL をアップロード)\]**​ または ​**\[Use an external link (外部リンクを使用)\]**​ を選択します。
    4. 必要に応じて、​**\[Asset type (アセットタイプ)\]**​、​**\[API version (API バージョン)\]**​、および ​**\[Asset version (アセットバージョン)\]**​ 項目を更新します。
        
        1. **\[Next (次へ)\]**​ をクリックします。
        2. ダウンストリーム設定を定義します。
            
            設定を確認するには展開します。
            
            <table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">項目名</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">必須</th>
<th class="tableblock halign-left valign-top">注意事項</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Protocol (プロトコル)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">検証に HTTP と HTTPS のどちらを使用するかを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">HTTPS を選択する場合、インバウンドトラフィックの TLS コンテキストを指定します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Inbound TLS (インバウンド TLS)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">インバウンドトラフィックを保護するための TLS コンテキストを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule 4 以降でのみ使用できます。コンテキストを表示できない場合は、適切な権限があることを確認してください。Mule 3 環境で HTTPS を有効にするには、​<a href="https://docs.mulesoft.com/jp/api-manager/latest/enable-https-mule3-proxies" class="xref page">「Mule 3x での HTTPS の有効化」</a>​を参照してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Port (ポート)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">表示されたポートが正しくない場合に使用する番号を指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Base Path (ベースパス)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ホストルートに相対的なすべての API パスの URL プレフィックスを指定します。スラッシュ ​<code>/</code>​ で始まる必要があります。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Instance label (インスタンス表示ラベル)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">API の表示ラベルを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">同じ API の複数の管理インスタンスがある場合、各インスタンスを他のインスタンスと区別するための表示ラベルを追加します。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Advanced Options (詳細オプション)</strong></p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Consumer endpoint (コンシューマーエンドポイント)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">コンシューマーが要求の送信に使用するプロキシアプリケーションのアドレスを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Client provider (クライアントプロバイダー)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">API のクライアントプロバイダーを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Anypoint Platform はデフォルトではクライアントプロバイダーとして機能します。外部クライアントプロバイダーを設定するには、​<a href="https://docs.mulesoft.com/jp/access-management/managing-api-clients" class="xref page">「クライアントプロバイダー」</a>​を参照してください。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Request Timeout (要求タイムアウト)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">要求がタイムアウトするまでの期間を指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Proxy Version (プロキシバージョン)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">エンドポイントに使用するプロキシのバージョンを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Service Name (サービス名)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL サービスの名前。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL API でのみ使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Service Port (サービスポート)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL サービスのポート。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL API でのみ使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Service Namespace (サービス名前空間)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL サービスの名前空間。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">WSDL API でのみ使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Enable Console (コンソールを有効化)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">API 仕様を公開およびテストできるかどうかを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>[Console Path (コンソールパス)]</strong>​ に別のパス (​<code>/spec/*</code>​ など) を指定できます。関連付けられた API 定義がある場合にのみ使用できます。Mule 3 以降でのみ使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Validations (検証)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">提供された仕様に対してインバウンド要求を検証するかどうかを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">関連付けられた API 定義がある場合にのみ使用できます。Mule 3 以降でのみ使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>厳格な検証 (省略可能)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">クエリパラメーターに対してインバウンド要求を検証するかどうかを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">関連付けられた API 定義がある場合にのみ使用できます。Mule 3 以降でのみ使用できます+</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>User Domain (ユーザードメイン)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">API ゲートウェイドメインを使用するかどうかを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">設定で以前にプロキシデプロイメント対象として ​<strong>[Hybrid (ハイブリッド)]</strong>​ を選択した場合は、必ずこのオプションを選択してください。Mule 3.8 以降の API ゲートウェイドメインをインストールする必要があります。</p></td>
</tr>
</tbody>
</table>
        3. **\[Next (次へ)\]**​ をクリックします。
        4. アップストリーム設定を定義します。
            
            設定を確認するには展開します。
            
            <table class="tableblock frame-all grid-all fit-content spread">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">項目名</th>
<th class="tableblock halign-left valign-top">説明</th>
<th class="tableblock halign-left valign-top">必須</th>
<th class="tableblock halign-left valign-top">注意事項</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Upstream URL (アップストリーム URL)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">プロキシまたは API にアクセスするための URL。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">はい</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">たとえば、Exchange の API アセットの URL を使用できます。</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><strong>Outbound TLS (アウトバウンド TLS)</strong></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">アウトバウンドトラフィックを保護するための TLS コンテキストを指定します。</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">いいえ</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Mule 4 以降でのみ使用できます。コンテキストを表示できない場合は、適切な権限があることを確認してください。</p></td>
</tr>
</tbody>
</table>
        5. **\[Next (次へ)\]**​ をクリックします。
        6. 選択内容を確認し、必要に応じて編集します。
        7. デプロイする準備ができたら、​**\[Save & Deploy (保存してデプロイ)\]**​ をクリックします。または、​**\[Save (保存)\]**​ を選択して API インスタンスを保存し、後でデプロイします。

## [](#xsd-ファイルでインポートが見つからない場合の-soap-プロキシのトラブルシューティング)XSD ファイルでインポートが見つからない場合の SOAP プロキシのトラブルシューティング

不適切な WSDL 定義が原因で、SOAP プロキシがデプロイメント中に失敗する場合があります。たとえば次のエラーは、WSDL の一部である XSD ファイルの 1 つにインポートが見つからないことを示しています。

```text
org.xml.sax.SAXParseException; systemId: http://localhost:8080/?wsdl304785538;
lineNumber: 2; columnNumber: 52; src-resolve.4.2: Error resolving component
'myNamespace:myElement’. It was detected that 'myNamespace:myElement' is in namespace
'http://my.namespace.url', but components from this namespace are not referenceable
from schema document 'http://localhost:8080/?wsdl304785538'. If this is the incorrect
namespace, perhaps the prefix of 'myNamespace:myElement' needs to be changed. If this
is the correct namespace, then an appropriate 'import' tag should be added to
'http://localhost:8080/?wsdl304785538'.
```

この問題は、WSDL ファイルで使用されている要素の定義が、現在の WSDL ファイルの名前空間とは異なる名前空間を使用する外部 XSD 内にある場合に発生します。

この問題は、適切なインポートを WSDL ファイルに追加することで解決できます。たとえば、前の例での例外の場合、WSDL ファイルの ​`types`​ 要素に次のインポートが含まれている必要があります

```text
<types>
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<import namespace="http://my.namespace.url" schemaLocation="myXSDFile.xsd"/>
</schema>
</types>
```

## [](#関連情報)関連情報

- [API プロキシ](https://docs.mulesoft.com/jp/api-manager/latest/api-proxy-landing-page)
- [Exchange からのインポートによる API インスタンスの作成](#manage-exchange-api-task.adoc)
- [API の TLS コンテキストの設定](https://docs.mulesoft.com/jp/api-manager/latest/building-https-proxy)