リストを取る関数を備えたカスタム クラウド コネクタがあります。コネクタのプロパティへの値のハードコーディングは正常に機能しますが、?listitem=item1&listitem=item2&other=other を使用して URL を REST コンポーネント、Choice フロー コントローラ、およびクラウド コネクタに渡すにはどうすればよいですか。
#[header:inbound:listitem] をコネクタの「From Message」フィールドに入れるように指示すると、次のようになります。
sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl を java.lang.Class にキャストできません (java.lang.ClassCastException)
私のRESTコンポーネントはそれをリストとして認識し、両方をログに記録しますが、文字列を探していて最初のリスト項目のみを受け入れると思います。どんな助けでも大歓迎です、ありがとう。
編集:申し訳ありませんが、急いで入力しました。Cloud Connector プロセッサの方法は次のとおりです。
@Processor
public void renewSubscriptionMultiple(List<String> uuids, String hours)throws Exception{
for(String uuid:uuids){
uuid = URLDecoder.decode(uuid,ENCODING);
}
hours = URLDecoder.decode(hours, ENCODING);
logger.info("Renewing subscriptions: "+uuids+" for "+hours+" hours");
renewSubscriptions(uuids,hours);
}
それらをデコードして別のメソッドに渡すだけです。ハードコードされたリストをうまく渡すことができるので、これは問題ではありません。
私のクエリは myIP:8081/test/subscriptions-renew?uuids=uuids1&uuids=uuids2&hours=24 です
Mule のバージョンは 3.3.0 です