0
にApacheのラクダは、Apacheラクダと次のような状況を解決することが可能です:FTPからデータベース
読むのftpから(定期的に)、XMLを含むzipファイルを取得し、データベースにこのXMLを格納します。
主な質問は、どの機能がラクダに存在し、どの機能が自分で作成する必要があるかです。
にApacheのラクダは、Apacheラクダと次のような状況を解決することが可能です:FTPからデータベース
読むのftpから(定期的に)、XMLを含むzipファイルを取得し、データベースにこのXMLを格納します。
主な質問は、どの機能がラクダに存在し、どの機能が自分で作成する必要があるかです。
はい、あなたのルートは、この(私の頭の上から)のようなものになります:これは、FTPサーバーをポーリング解凍ファイル、XMLフラグメントのコンテンツを分割し、JPAにこれらを変換します
JaxbDataFormat jaxb = new JaxbDataFormat("com.example.foobar");
from("ftp://user:[email protected]:21/inbox")
.unmarshal().zip()
.split(xpath("//foo"))
.unmarshal(jaxb)
.to("jpa:com.example.foobar.Foo")
をこれらのオブジェクトをデータベースに永続化します。ユースケースによっては、スプリッタEIPを省略することも、たとえば、別の永続化メカニズム(MyBatis、Spring-JDBCなど)を選択することもできます。
私の場合は、データベースにCLOBとしてxmlを保存する必要があります。CLOBフィールドと2つの追加フィールドを持つエンティティになります。何がわかりませんか。解凍後にファイルの本体を取得する方法jpaエンティティの内部に渡します。 org.apache.camel.model.dataformatには多くのデータ形式がありますが、他の場合に使用されているようです。私はそれをCLOBに変換するために私自身のデータフォーマットを書く必要があります – endryha
今のところ、XMLを文字列に変換してJdbcTemplate経由でデータベースに保存するSpring Beanに渡したい – endryha
Xml to ClobバインディングはおそらくJAXBアンマーシャリング。それ以外の場合は、メッセージトランスレータEIPを実装することができます(プロセッサなどを介して)。 Xml-> String-> Spring beanの方法については、 '.convertBodyTo(String.class).beanRef(" fooBean "、" barMethod ")' –