この例では、camel-sqlという例をバックエンドのOracleからいくつかの行をフェッチしようとしています。CantはApache CamelのファイルにSQL出力を保存します
データソースの定義:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@localhost:port:sid"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
</bean>
ルート定義:
<route id="QueryTable">
<from uri="timer:foo?period=5s"/>
<to uri="sql:{{sql.selectOrder}}"/>
<to uri="file:target/data/?fileName=data.txt"/>
</route>
適切に行をフェッチするようだが、ファイルが作成されないと、次の例外を報告します。どんな助けも高く評価されます。 org.apache.camel.impl.MessageSupport.getMandatoryBody(MessageSupport.java:105) でorg.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:198) で
..選択操作のためのより。16
そして、より一般的に、初心者へのアドバイスは、次のようになります。あなたのルートの各ステップの前と後では、メッセージ・ボディのデータ型を知っている必要があります。だから、ステップの前にデータ型を知っていて、そうでなければチェックして、そのステップがその型のボディを扱うことができるかどうか尋ねることができます。また、ステップ9の結果のデータ型を知っていて、そうでない場合はチェックしてください)。 –