---
schema_version: "1"
id: 3c4713b7cf8018b6b4e357298d0556dc3f4b9badfd3551be06864f1b2182d8bd
title: メッセージソースでの設定および接続の取得
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/mule-sdk/1.1/sources-config-connection.md
canonical_url: https://docs.mulesoft.com/jp/mule-sdk/1.1/sources-config-connection
source_site: docs.mulesoft.com
content_type: documentation
content_hash: c94252d0cd6415e61ea5fc412fb563b41db3282ab7012ded005511d2620e78c3
description: MuleSoft Documentation Site
release: "1.1"
latest: false
---
# メッセージソースでの設定および接続の取得

## [](#設定オブジェクトの取得)設定オブジェクトの取得

操作と同様に、ソースはその動作に関するパラメーターを取得するために設定を参照できます。そのような設定を取得するには、項目に ​`@Config`​ アノテーション (操作引数で使用されるアノテーションと同じ) を付加する必要があります。

```java
public class HttpListener extends Source<InputStream, HttpRequestAttributes> {

  @Config
  private HttpListenerConfig config;
}
```

## [](#接続の取得)接続の取得

ソースで接続が必要な場合 (スケジューラーを実装していなければ 99% のコネクタで必要)、接続を取得する必要があります。操作と同様に、​`@Connection`​ アノテーションが使用されますが、主に次の 2 つの点が異なります。

- メソッド引数ではなく項目で使用される。
- 接続オブジェクトではなく ​`ConnectionProvider`​ が挿入される。

```java
public class HttpListener extends Source<InputStream, HttpRequestAttributes> {

    @Config
    private HttpListenerConfig config;

    @Connection
    private ConnectionProvider<HttpServer> serverProvider;

    @Parameter
    @Optional(defaultValue = "/")
    private String path;

    private HttpServer httpServer;

    @Override
    public void onStart(SourceCallback<InputStream, HttpRequestAttributes> sourceCallback) throws MuleException {
        httpServer = serverProvider.connect(); (1)

        httpServer.listen(path).onRequest(request -> { (2)
            processRequest(request, sourceCallback); (3)
        });
    }

    @Override
    public void onStop() {
        if (httpServer != null) { (4)
            serverProvider.disconnect(httpServer); (5)
        }
    }
}
```

<table><tbody><tr><td><i class="conum" data-value="1"></i><b>1</b></td><td>この例では、​<code>ConnectionProvider</code>​ を使用して ​<code>HttpServer</code>​ を取得しています。一般的な接続プロバイダーの場合、適切なホストとポートを使用してすでにサーバーが設定されています。</td></tr><tr><td><i class="conum" data-value="2"></i><b>2</b></td><td>リモートクライアントが HTTP 要求をサーバーにプッシュし、​<code>HttpServer</code>​ コンポーネントが各要求のソースを通知します。次に、ソースが ​<code>SourceCallback</code>​ を使用してメッセージをフローにプッシュします。</td></tr><tr><td><i class="conum" data-value="3"></i><b>3</b></td><td>ソースは ​<code>processRequest</code>​ メソッドを定義して、HTTP 要求を、フローにプッシュできるメッセージに変換する必要があります。その方法については、このドキュメントで後述しますが、例を単純化するために、これが機能すると想定できます。</td></tr><tr><td><i class="conum" data-value="4"></i><b>4</b></td><td><code>onStop()</code>​ メソッドは、リソース (このケースでは ​<code>HttpServer</code>​) を解放します。サーバーが作成される前に ​<code>onStart()</code>​ メソッドが失敗した場合に備えて null をチェックします。</td></tr><tr><td><i class="conum" data-value="5"></i><b>5</b></td><td>この例では、​<code>ConnectionProvider</code>​ の ​<code>disconnect()</code>​ メソッドを使用してサーバーを解放します。</td></tr></tbody></table>

<table><tbody><tr><td class="icon"><i class="fa icon-tip" title="Tip"></i></td><td class="content">上記の例は疑似コードです。例が明確かつ簡潔になるように、実際の HTTP Connector を大幅に簡略化しています。</td></tr></tbody></table>

## [](#次のステップ)次のステップ

- [メッセージソースからフローへのメッセージのプッシュ](https://docs.mulesoft.com/jp/mule-sdk/1.1/sources-push-message)