这个应该很简单,但对于我的生活,我无法弄清楚如何让它运行。我想要做的是从文件夹中读取文件并将它们发送到打印机。
因此,我查看了 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"/>
我担心名称中的破折号和空格,以前使用过此组件的人可能会在这里有所启发。