java.lang.IllegalArgumentException: Cannot apply transformer FileToString{this=2e93ba04, name='File_to_String', ignoreBadInput=false, returnClass=SimpleDataType{type=java.lang.String, mimeType='*/*'}, sourceTypes=[SimpleDataType{type=java.io.File, mimeType='*/*'}, SimpleDataType{type=java.io.FileInputStream, mimeType='*/*'}]} on source payload: class org.mule.transport.AbstractConnector$7.
以下是我们代码的摘要。
<quartz:inbound-endpoint responseTimeout="10000"
doc:name="Quartz" cronExpression="0 0/3 * * * ? *" repeatInterval="0"
jobName="ApptioStart" >
<quartz:endpoint-polling-job>
<quartz:job-endpoint ref="fileConnector"/>
</quartz:endpoint-polling-job>
</quartz:inbound-endpoint>
<logger message="#[message.outboundProperties]" level="INFO" doc:name="Logger"/>
<!-- Read file from predefined folder path <file:inbound-endpoint path="${csv.folder.path}"
responseTimeout="10000" doc:name="File" /> -->
<file:file-to-string-transformer
doc:name="File to String" />
答案 0 :(得分:0)
问题在于:
<quartz:job-endpoint ref="fileConnector"/>
ref
应该引用全局端点而不是连接器。这就是消息的有效负载是org.mule.transport.AbstractConnector
的原因,这会导致异常。
因此,通过将其置于流外部来创建全局文件端点:
<file:endpoint name="csvFileEndpoint"
path="${csv.folder.path}"
responseTimeout="10000"
doc:name="CSV Files" />
然后在Quartz端点中使用它:
<quartz:job-endpoint ref="csvFileEndpoint"/>
参考文献: