Rss 使用Mule工作流和文件端点写入${app.home}
我有一个groovy脚本,它生成一个RSS提要,我正试图使用文件端点将其写入${app.home}/RSS 然后,我通过http端点将此RSS提要作为静态资源提供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
<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”属性定义文件名