我的FTP端点出现问题。它会工作一点然后停止工作,并给我主机名不能为空。我正在使用工作室版本:3.4.0。我的流程取决于FTP:
<context:property-placeholder location="environment.properties"/>
<flow name="NpPlaFeedFlow1" doc:name="NpPlaFeedFlow1">
<quartz:inbound-endpoint jobName="GetAttributes" cronExpression="30 * * * * ?" startDelay="500" responseTimeout="10000" doc:name="Quartz" repeatCount="0" repeatInterval="0">
<quartz:event-generator-job/>
</quartz:inbound-endpoint>
<message-properties-transformer doc:name="Message Properties" scope="session">
<add-message-property key="database.server" value="${database.server}"/>
<add-message-property key="database.port" value="${database.port}"/>
<add-message-property key="database.user" value="${database.user}"/>
<add-message-property key="database.password" value="${database.password}"/>
<add-message-property key="database.databaseName" value="${database.databaseName}"/>
<add-message-property key="adwords.promo" value="${adwords.promo}"/>
<add-message-property key="file.fileName" value="${file.fileName}"/>
<add-message-property key="ftp.serverName" value="${ftp.serverName}"/>
</message-properties-transformer>
<component doc:name="Java" class="com.newpig.transformer.GeneratePLA"/>
<file:file-to-string-transformer doc:name="File to String"/>
<logger message="Hostname is: ${ftp.serverName}" level="INFO" doc:name="Logger"/>
<ftp:outbound-endpoint host="${ftp.serverName}" port="21" user="${ftp.user}" password="${ftp.pass}" responseTimeout="10000" doc:name="FTP"/>
当我运行应用程序时,记录器会显示正确的主机名,如下所示。
2014-03-12 16:16:45,078 [[npplafeed].NpPlaFeedFlow1.stage1.02] INFO org.mule.api.processor.LoggerMessageProcessor - Hostname is: cmsdev_steves
2014-03-12 16:16:45,092 [[npplafeed].connector.ftp.mule.default.dispatcher.01] INFO org.mule.lifecycle.AbstractLifecycleManager - Initialising: 'connector.ftp.mule.default.dispatcher.1429708287'. Object is: FtpMessageDispatcher
2014-03-12 16:16:45,092 [[npplafeed].connector.ftp.mule.default.dispatcher.01] INFO org.mule.lifecycle.AbstractLifecycleManager - Starting: 'connector.ftp.mule.default.dispatcher.1429708287'. Object is: FtpMessageDispatcher
2014-03-12 16:16:45,109 [[npplafeed].connector.ftp.mule.default.dispatcher.01] ERROR org.mule.exception.CatchMessagingExceptionStrategy -
********************************************************************************
Message : hostname can't be null (java.lang.IllegalArgumentException)
Code : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. hostname can't be null (java.lang.IllegalArgumentException)
java.net.InetSocketAddress:-1 (null)
2. hostname can't be null (java.lang.IllegalArgumentException) (org.mule.transport.ConnectException)
org.mule.transport.ftp.FtpConnector:556 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/transport/ConnectException.html)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.IllegalArgumentException: hostname can't be null
at java.net.InetSocketAddress.<init>(Unknown Source)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:176)
at org.apache.commons.net.SocketClient.connect(SocketClient.java:268)
+ 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
********************************************************************************
2014-03-12 16:16:45,146 [[npplafeed].connector.smtp.mule.default.dispatcher.01] INFO org.mule.transport.service.DefaultTransportServiceDescriptor - Loading default outbound transformer: org.mule.transport.email.transformers.ObjectToMimeMessage
2014-03-12 16:16:45,151 [[npplafeed].connector.smtp.mule.default.dispatcher.01] INFO org.mule.lifecycle.AbstractLifecycleManager - Initialising: 'connector.smtp.mule.default.dispatcher.2029326140'. Object is: SmtpMessageDispatcher
2014-03-12 16:16:45,180 [[npplafeed].connector.smtp.mule.default.dispatcher.01] INFO org.mule.lifecycle.AbstractLifecycleManager - Starting: 'connector.smtp.mule.default.dispatcher.2029326140'. Object is: SmtpMessageDispatcher
有谁知道还要检查什么?我试过替换host =&#34; $ {ftp.serverName}&#34;与主持人=&#34; cmsdev-steves&#34;有时我可以让它工作,有时候不能。
修改 的 我在原帖中没有提到我根本无法使用变量来连接FTP组件。最初我只在我的属性文件中有ftp.serverName,并没有将它添加到message-properties-transformer。我把它添加到那个变压器中,希望它能把它拿起来。同样,记录器会吐出正确的值,因此我无法理解为什么FTP端点也没有得到相同的值。
答案 0 :(得分:0)
问题是您正在出站端点配置ftp凭据。
定义一个连接器,然后将你的ftp配置(主机名,用户名和密码)放在那里。