1

あまり明確ではないため、ラクダのドキュメントにこだわっています...

Spring でこのルートを定義したい:

in: direct access from a url
out: get an object instance from a factory
--> format this object in Json

私はこのようなマーシャラーで試しました:

<camel:route id="viewObject">
  <camel:from uri="restlet:/json/" />

  <camel:to uri="bean:myFactory" />
  <camel:unmarshal ref="jack" />
</camel:route>

しかし、入力後と出力前に非整列化が機能するため、機能しません。これは予想されていたので、出力を別のエンドポイントに再ルーティングしようとしました。

<camel:route id="formatObject">
  <camel:from uri="bean:myFactory" />
  <camel:unmarshal ref="jack" />
  <camel:to uri="mock:reverse" />
</camel:route>

基本的に私は私のオブジェクトが欲しい:

public class MyObject{
  private String name;
  [ getter & setter here]
 }

この方法で非整列化する:

 {name : 'a value'}

そして、これはマーシャラーとラクダの設定のみです。助けてください、非常に明確な説明とハウツーも歓迎されます

4

1 に答える 1

4

基本的に、camel コンテキスト内でこのような xml を作成するだけです。

<dataFormats>
  <json id="jack" library="Jackson" unmarshalTypeName="com.example.MyObject"/>
</dataFormats>

<route>
        <from uri="restlet:/json/"/>
        <to uri="bean:myFactory"/>
        <marshal ref="jack"/>
</route>

マーシャル/アンマーシャルの言葉を混同しているようです

Unmarshall = from json -> bean Marshall = from bean -> json.

于 2012-08-06T11:42:52.040 に答える