2017-01-30 12 views
0

WSO2 ESB 5.0.0のカスタムコネクタを作成するのは混乱します。レガシーデバイス(温度計)用のカスタムコネクタが必要です。このコネクタはESB REST API経由で呼び出されます。コネクタが行うべき唯一のことは、指定されたIPアドレス(コネクタ入力パラメータ)へのソケット接続を作成し、応答データを解析することです。プログラムは完全に単独で動作します。しかし、カスタムコネクタにどのように統合するのか分かりません。特に、APIコールへの応答としてコネクタからデータを送信する方法。WSO2 ESBカスタムコネクタ

マイコネクタコード:in.readLineでのメッセージは()を送信する必要があります

@Override 
public void connect(MessageContext messageContext) throws ConnectException { 
    Object templateParam = getParameter(messageContext, "generated_param"); 
    try { 
     log.info("sample connector received message :" + templateParam); 
     /**Add your connector code here 
     **/ 
     Socket socket = new Socket("172.16.xxx.xxx", 2000); 

     BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8")); 
     BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream())); 

     out.write("*SRTC\r"); 
     out.flush(); 

     System.out.println(in.readLine()); 

     out.close(); 
     in.close(); 
     socket.close(); 

    } catch (Exception e) { 
    throw new ConnectException(e); 
    } 
} 

???

+0

https://docs.wso2.com/display/ESBCONNECTORS/Writing+a+Connector

<class name="class-name"/> 

を参照してください、私たちはJavaクラスを作成し、ようなクラスメディエーターを使用して、コネクタのテンプレート内そのカスタムクラスを呼び出すように指定するには/あなたのメディエーターのためのアウトパラメータ。これらのパラメータは、メディエータ内でプロパティとしてアクセスすることができ、メディエータの応答はプロパティまたはメッセージペイロードに入れることができます。 –

+0

ありがとう、さらに私はESB APIでカスタムコネクタを呼び出す方法がわかりません。正しいAPIシーケンスとは何ですか? – vladikk

答えて

0

メディエーターでカスタムメディエーターを呼び出すことができるはずです。以下は、それを行う方法の例です。

<class name="org.wso2.esb.tutorial.mediators.SurchargeStockQuoteMediator"> 
<property name="defaultPercentage" value="10"/> 

あなたは、次のURLの下に便利な情報を見つけることができます。

http://wso2.com/library/2898/ http://wso2.com/library/2936/

お役に立てば幸いです。

+0

あなたは仲介者とコネクタを混同しましたか? –

2

解決しよう:私のMessageContextに応答を記憶されている:次メディエータと

messageContext.setProperty("temperature", Double.parseDouble(in.readLine())); 

、次いでプロセス。ありがとう

1

私はあなたがクラスメディエーターとコネクターを混同していると思います。基本的に、コネクターは、ESB構成から呼び出してメッセージを処理するための特定のロジックに簡単にアクセスできる操作を定義するテンプレートの集まりです。通常、コネクタは外部サービスのAPIをラップするために使用されます。たとえば、TwitterやJIRAなどのサービスのAPIを呼び出すESBには、いくつかのデフォルトコネクタが用意されています。独自のコネクタを作成して、他のサービスへのアクセスを提供することもできます。

コネクタテンプレート内にJava関数を作成することはできません。あなたが必要とする

https://docs.wso2.com/display/ESB500/Class+Mediator