是的,Apache Camel Solr组件确实期望文件。如果传递给Solr组件的消息体是一个文件名字符串,Solr组件将会尝试读取该文件并将其内容发送到Solr服务器。如果消息体不是包含文件名的字符串,则Solr组件将会抛出异常。
以下是一个示例,其中文件名 'example.xml' 是通过从文件系统中获取的消息体传递给Solr组件:
from("file:/path/to/directory")
.setHeader(Exchange.FILE_NAME, constant("example.xml"))
.to("solr://localhost:8983/solr/collectionName");
当文件被读取并发送到Solr服务器时,Solr组件将输出以下日志记录:
INFO org.apache.camel.component.solr.SolrComponent - Sending stream com.example.example.xml to Solr.
因此,请确保您向Solr组件传递包含文件名的字符串。