2014-04-11 3 views
0

파일 끝점을 사용하여 $ {app.home}/rss에 쓰려고 시도하는 RSS 피드를 생성하는 그루비 스크립트가 있습니다.

다음은이 RSS 피드를 http 엔드 포인트를 통해 정적 리소스로 제공합니다.

<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) 
******************************************************************************** 

답변

0

내가 잘못하고있는 것을 알았습니다. 파일 아웃 바운드 끝점에 대한 디렉터리 경로 만 정의해야했습니다.

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

파일 커넥터가 현재와는 'outputPattern'속성을 통해 파일의 이름을 정의하는 경우 기존 파일에 추가 할 수 있도록 구성되어있다 : 나는 또한 다음과 같이 정의 된 파일 커넥터를 필요로했다.

관련 문제