これは単純なはずですが、私の人生では、それを実行する方法がわかりません。私がやりたいことは、フォルダーからファイルを読み取り、それらをプリンターに送信することです。
そこで、Camel のプリンター コンポーネントのドキュメントを見てみましたが、わかりやすいように思えました。
次の DSL ルートを作成しました。
<camelContext trace="false" id="blueprintContext" xmlns="http://camel.apache.org/schema/blueprint">
<route id="printSpoolRoute">
<from uri="file:d:/printspool?delay=1000&move=.done/printed/${date:now:yyyyMMdd}/${file:onlyname.noext}_DONE_${date:now:yyyyMMddHHmmss}.${file:name.ext}&readLock=changed""/>
<to uri="lpr:localhost/default?flavor=DocFlavor.INPUT_STREAM&mimeType=AUTOSENSE&mediaSize=iso-a4"/>
</route>
</camelContext>
起動すると、次の例外が発生します。
[ Blueprint Extender: 1] BlueprintCamelContext ERROR Error occurred during starting Camel: CamelContext(blueprintContext) due Failed to create Producer for endpoint: Endpoint[lpr://localhost/default?flavor=DocFlavor.INPUT_STREAM&mediaSize=iso-a4&mimeType=AUTOSENSE]. Reason: java.lang.NullPointerException
org.apache.camel.FailedToCreateProducerException: Failed to create Producer for endpoint: Endpoint[lpr://localhost/default?flavor=DocFlavor.INPUT_STREAM&mediaSize=iso-a4&mimeType=AUTOSENSE]. Reason: java.lang.NullPointerException
例外に詳細があれば、何かを探すことができるかもしれないので、印刷プロデューサーの URI を間違えたのではないかと思います。
プリンター プロデューサーの URI を見ているときに、ネットワーク プリンターを使用するときに URI の理解が正しいかどうかを確認したかっただけです。
HP LaserJet 4104 という名前のサーバー コール SRV-07 に接続されたネットワーク プリンターでドキュメントを作成したいとします。次の URI が正しいとします。
<to uri="lpr:SRV-07/HP LaserJet 4104?flavor=DocFlavor.INPUT_STREAM&mimeType=AUTOSENSE&mediaSize=iso-a4"/>
名前に含まれるダッシュとスペースが心配です。このコンポーネントを以前に使用したことがある人は、ここでいくつかの光を当てることができます.