2017-03-29 12 views
0

Mule ESBとAnypoint Studioで少し新機能ですので、JavaトランスフォーマクラスでHTTPクエリパラメータを取得する方法を理解しようとしています。MULE ESBでJavaトランスフォーマでHTTPパラメータを取得する方法

それはだ場合、私は

String firstname = message.getInboundProperty("fname"); 
String lastName = message.getInboundProperty("lname"); 

を試してみましたが、でも

Map<String, String> queryParams = message.getInboundProperty("http.query.params"); 
String firstname = queryParams.get("fname"); 
String lastname = queryParams.get("lname"); 

と一緒に行きましたが、彼らはnull値を返す、私も呼び出し可能インターフェースを使用しようとしましたが、私はそれを使用することが唯一の可能性を考えますJAVAコンポーネント。

ありがとうございました。

答えて

2

は、Javaの変圧器に使用する場合は、次の例に従うことができます -

public class MyCustomTransformer extends AbstractMessageTransformer { 
@Override 
public Object transformMessage(MuleMessage message, String outputEncoding) throws TransformerException { 

    Map<String, String> queryParams = message.getInboundProperty("http.query.params"); 
    String fname=queryParams.get("fname"); 
    System.out.println("fname: "+fname); 
    String lname=queryParams.get("lname"); 
    System.out.println("lname: "+lname); 
    return message; 

} 
} 

そしてミュールの流れを次のようになります -

<http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration"/> 

<flow name="Testlow"> 
    <http:listener config-ref="HTTP_Listener_Configuration" path="/test" doc:name="HTTP"/> 
    <custom-transformer class="MyCustomTransformer" doc:name="Java"/> 
</flow> 

今、あなたとURLをヒットした場合例えばクエリパラメータ: - http://localhost:8081/test?fname=anirban&lname=sen

あなたのコンソールで次のような結果が得られます: -

enter image description here

+0

うんをスローします。面白い、私は最初に何が起こったのだろうか? – charle819

0

以下の別のアプローチとしてプロパティを取得することもできます。

パブリッククラスMyCustomTransformerが延びAbstractMessageTransformer { @Override パブリックオブジェクトtransformMessage(MuleMessageメッセージ、文字列outputEncodingは)それが今地図を使って働いているTransformerException {

 Map<String, String> queryParams = 
     message.getProperty("http.query.params", PropertyScope.INVOCATION); 
     String fname=queryParams.get("fname"); 
     System.out.println("fname: "+fname); 
     String lname=queryParams.get("lname"); 
     System.out.println("lname: "+lname); 
     return message; 

    } 
    } 
関連する問題