Rss 使用Mule工作流和文件端点写入${app.home}

Rss 使用Mule工作流和文件端点写入${app.home},rss,mule,Rss,Mule,我有一个groovy脚本,它生成一个RSS提要,我正试图使用文件端点将其写入${app.home}/RSS 然后,我通过http端点将此RSS提要作为静态资源提供 <flow name="rssModifier" doc:name="rssModifier"> <quartz:inbound-endpoint jobName="job" repeatInterval="300000" responseTimeout="10000" doc:name="Quartz"&g

我有一个groovy脚本,它生成一个RSS提要,我正试图使用文件端点将其写入${app.home}/RSS

然后,我通过http端点将此RSS提要作为静态资源提供

<flow name="rssModifier" doc:name="rssModifier">
    <quartz:inbound-endpoint jobName="job" repeatInterval="300000" responseTimeout="10000" doc:name="Quartz">
        <quartz:event-generator-job/>
    </quartz:inbound-endpoint>
    <all doc:name="All">
        <processor-chain>
            <scripting:component doc:name="FirstGroovyRssFeed">
                <scripting:script engine="Groovy" file="C:\git-gms\edus-esb-rss-test-harness\src\main\java\edu\ucdavis\iet\edus\rsstestharness\server\groovy\InitializeRssFeed.groovy"/>
            </scripting:component>
            <logger message="#[payload]" level="INFO" doc:name="Logger"/>
            <file:outbound-endpoint path="${app.home}/rss/groovy.xml" responseTimeout="10000" doc:name="File"/>
        </processor-chain>

    </all>
</flow>

<flow name="httpWebServer" doc:name="httpWebServer">
    <http:inbound-endpoint address="http://localhost:8084/static" doc:name="HTTP" exchange-pattern="request-response" connector-ref="HTTP_HTTPS"/>
    <http:static-resource-handler resourceBase="${app.home}/rss" 
           defaultFile="rometest.xml" doc:name="HTTP Static Resource Handler"/>
    <logger message="#[payload] #[message]" level="INFO" doc:name="Logger"/>
</flow>

我已确认在运行此应用程序时,groovy.xml文件存在于${app.home}目录中,但我收到以下错误,并且rss提要xml未写入该文件:

    Message               : Streaming failed. Could not get output stream. Failed to route    event via endpoint: DefaultOutboundEndpoint{endpointUri=file:///C:/Users/gmsharpe/MuleStudio/workspace-3.5/.mule/apps/edus-esb-rss-test-harness/rss/groovy.xml, connector=FileConnector
{
  name=output
  lifecycle=start
  this=353ccb63
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=true
  supportedProtocols=[file]
  serviceOverrides=<none>
}
,  name='endpoint..C.Users.gmsharpe.MuleStudio.workspace.3.5.mule.apps.edus.esb.rss.test.harness.rss.groovy.xml', mep=ONE_WAY, properties={}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: String
Code                  : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
  1. The system cannot find the path specified (java.io.IOException)
  java.io.WinNTFileSystem:-2 (null)
2. Streaming failed. Could not get output stream. Failed to route event via endpoint: DefaultOutboundEndpoint{endpointUri=file:///C:/Users/gmsharpe/MuleStudio/workspace-3.5/.mule/apps/edus-esb-rss-test-harness/rss/groovy.xml, connector=FileConnector
{
  name=output
  lifecycle=start
  this=353ccb63
  numberOfConcurrentTransactedReceivers=4
  createMultipleTransactedReceivers=true
  connected=true
  supportedProtocols=[file]
  serviceOverrides=<none>
}
,  name='endpoint..C.Users.gmsharpe.MuleStudio.workspace.3.5.mule.apps.edus.esb.rss.test.harness.rss.groovy.xml', mep=ONE_WAY, properties={}, transactionConfig=Transaction{factory=null, action=INDIFFERENT, timeout=0}, deleteUnacceptedMessages=false, initialState=started, responseTimeout=10000, endpointEncoding=UTF-8, disableTransportTransformer=false}. Message payload is of type: String (org.mule.api.transport.DispatchException)
  org.mule.transport.file.FileConnector:569 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.io.IOException: The system cannot find the path specified
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at org.mule.util.FileUtils.createFile(FileUtils.java:93)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
消息:流式传输失败。无法获取输出流。未能通过端点路由事件:DefaultOutboundEndpoint{endpointUri=file:///C:/Users/gmsharpe/MuleStudio/workspace-3.5/.mule/apps/edus esb rss测试线束/rss/groovy.xml,connector=FileConnector
{
名称=输出
生命周期=开始
这个=353ccb63
ConcurrentTransacticedReceiver的数量=4
CreateMultipleTransactedReceiver=true
已连接=真
supportedProtocols=[文件]
服务覆盖=
}
,name='endpoint..C.Users.gmsharpe.MuleStudio.workspace.3.5.mule.apps.edus.esb.rss.test.harness.rss.groovy.xml',mep=ONE_-WAY,properties={},transactionConfig=Transaction{factory=null,action=interference,timeout=0},DeleteUnceptedMessages=false,initialState=started,responseTimeout=10000,endpointEncoding=UTF-8,disableTransportTransformer=false}。消息负载的类型为:String
代码:MULE_错误--2
--------------------------------------------------------------------------------
异常堆栈是:
1.系统找不到指定的路径(java.io.IOException)
WinNTFileSystem:-2(空)
2.流媒体传输失败。无法获取输出流。未能通过端点路由事件:DefaultOutboundEndpoint{endpointUri=file:///C:/Users/gmsharpe/MuleStudio/workspace-3.5/.mule/apps/edus esb rss测试线束/rss/groovy.xml,connector=FileConnector
{
名称=输出
生命周期=开始
这个=353ccb63
ConcurrentTransacticedReceiver的数量=4
CreateMultipleTransactedReceiver=true
已连接=真
supportedProtocols=[文件]
服务覆盖=
}
,name='endpoint..C.Users.gmsharpe.MuleStudio.workspace.3.5.mule.apps.edus.esb.rss.test.harness.rss.groovy.xml',mep=ONE_-WAY,properties={},transactionConfig=Transaction{factory=null,action=interference,timeout=0},DeleteUnceptedMessages=false,initialState=started,responseTimeout=10000,endpointEncoding=UTF-8,disableTransportTransformer=false}。消息负载的类型为:String(org.mule.api.transport.DispatchException)
org.mule.transport.file.FileConnector:569(http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchException.html)
--------------------------------------------------------------------------------
根异常堆栈跟踪:
java.io.IOException:系统找不到指定的路径
位于java.io.WinNTFileSystem.CreateFileExclusive(本机方法)
位于java.io.File.createNewFile(未知源)
位于org.mule.util.FileUtils.createFile(FileUtils.java:93)
+3个以上(为所有内容设置调试级别日志或“-Dmule.verbose.exceptions=true”)
********************************************************************************

我发现自己做错了什么。我只需要为文件出站端点定义目录路径。我还需要一个文件连接器,其定义如下:

<file:connector name="output" autoDelete="false" outputAppend="true" outputPattern="groovy.xml" streaming="false" validateConnections="true" doc:name="File"/> 

文件连接器配置为允许附加到现有文件(如果存在),并通过“outputPattern”属性定义文件名