Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MULE可以从本地目录通过HTTP发布XML文件吗?_Http_Post_Mule - Fatal编程技术网

MULE可以从本地目录通过HTTP发布XML文件吗?

MULE可以从本地目录通过HTTP发布XML文件吗?,http,post,mule,Http,Post,Mule,我需要通过HTTP POST传输XML文件。可以将Mule配置为执行此操作。我一直在尝试一个简单的流,入站文件-->出站HTTP,但它不起作用。有人有过这样的经历吗 <flow name="rpg_uploadFlow1" doc:name="rpg_uploadFlow1"> <file:inbound-endpoint path="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\OUT" moveToDire

我需要通过HTTP POST传输XML文件。可以将Mule配置为执行此操作。我一直在尝试一个简单的流,入站文件-->出站HTTP,但它不起作用。有人有过这样的经历吗

    <flow name="rpg_uploadFlow1" doc:name="rpg_uploadFlow1">
    <file:inbound-endpoint path="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\OUT" moveToDirectory="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\sent" responseTimeout="10000" mimeType="text/xml" doc:name="File"/>
    <http:outbound-endpoint exchange-pattern="one-way" host="http://XXXXXXXXXXX.ashx?SystemName=XXXX&amp;UserName=XXXX&amp;PassWord=XXXXX" port="80" disableTransportTransformer="true" doc:name="HTTP"/>

</flow>

消息:未能通过端点路由事件:DefaultOutboundEndpoint{endpointUri=http://http://xxxxxxxxxxxxxxxx/rpgtest/service.ashx?  SystemName=xxxxxxxxxxxxxxxx&UserName=xxxxxxxxxxxxxxxxx&PassWord=xxxxxxx,connector=HttpConnector
{
name=connector.http.mule.default
生命周期=开始
这=18b44ce0
ConcurrentTransacticedReceiver的数量=4
CreateMultipleTransactedReceiver=true
已连接=真
supportedProtocols=[http]
服务覆盖=
}
,name='endpoint.http.http.xxxxxxxxxxxxxxxxxx.service.ashx.SystemName.xxxxx.UserName.xxxxx.Pass Word.836749.80',mep=ONE_-WAY,properties={PassWord=836749:80,SystemName=xxxxxx,UserName=xxxxxxxxx},transactionConfig=Transaction{factory=null,action=interference,timeout=0},DeleteUnceptedMessages=false,initialState=started,responseTimeout=10000,endpointEncoding=UTF-8,disableTransportTransformer=true}。消息负载的类型为:ReceiverFileInputStream
代码:MULE_错误-42999
--------------------------------------------------------------------------------
异常堆栈是:
1.http(java.net.UnknownHostException)
java.net.AbstractPlainSocketImpl:-1(空)
2.未能通过端点路由事件:DefaultOutboundEndpoint{endpointUri=http://http://xxxxxxxxxx.ashx?   SystemName=xxxxxxxxxxx&UserName=xxxxxx&PassWord=836749:80,connector=HttpConnector
{
name=connector.http.mule.default
生命周期=开始
这=18b44ce0
ConcurrentTransacticedReceiver的数量=4
CreateMultipleTransactedReceiver=true
已连接=真
supportedProtocols=[http]
服务覆盖=
}
,name='endpoint.http.http.xxxx.ashx.SystemName.xxxxxxxx.UserName.xxxxx.PassWord.836749.80',mep=ONE_-WAY,properties={PassWord=836749:80,SystemName=xxxxxxxxxxxxx,UserName=xxxx},transactionConfig=Transaction{factory=null,action=interference,timeout=0},DeleteUnceptedMessages=false,initialState=started,responseTimeout=10000,endpointEncoding=UTF-8,disableTransportTransformer=true}。消息负载的类型为:ReceiverFileInputStream(org.mule.api.transport.DispatchException)
org.mule.transport.http.HttpClientMessageDispatcher:155(http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transport/DispatchExceptio n、 (html)
--------------------------------------------------------------------------------
根异常堆栈跟踪:
java.net.UnknownHostException:http
位于java.net.AbstractPlainSocketImpl.connect(未知源)
位于java.net.PlainSocketImpl.connect(未知源)
位于java.net.socksocketimpl.connect(未知源)
+3个以上(为所有内容设置调试级别日志或“-Dmule.verbose.exceptions=true”)


我在文件端点的某些地方遇到了问题,因为它将文件读取器作为有效负载而不是实际文本传递。尝试添加文件到字符串转换器:

<flow name="rpg_uploadFlow1" doc:name="rpg_uploadFlow1">
    <file:inbound-endpoint path="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\OUT" moveToDirectory="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\sent" responseTimeout="10000" mimeType="text/xml" doc:name="File"/>
    <file:file-to-string-transformer doc:name="File to String"/>
    <http:outbound-endpoint exchange-pattern="one-way" host="http://XXXXXXXXXXX.ashx?SystemName=XXXX&amp;UserName=XXXX&amp;PassWord=XXXXX" port="80" disableTransportTransformer="true" doc:name="HTTP"/>
</flow>

您可以使用多字节数组到字符串转换器将请求作为字符串发出,然后将其发送到http出站

<flow name="rpg_uploadFlow1" doc:name="rpg_uploadFlow1">
    <file:inbound-endpoint path="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\OUT" moveToDirectory="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\sent" responseTimeout="10000" mimeType="text/xml" doc:name="File"/>

    <byte-array-to-string-transformer></byte-array-to-string-transformer>
  .....

.....
这是你的错误。它与mule标记和端点无关。这是访问您正在尝试的url的一种方式

有关UnknownHostException的问题,请参见下面的帖子

试试这个:
您可以使用多字节数组到字符串转换器将请求的文件设置为字符串,然后使用SetPayload或附件连接器将其发布到http出站。

您可以发布配置吗?嗨,丹尼尔,是的,现在我已经发布了流。我原以为文件indound端点会将文件发送到有效负载,然后出站端点会发布它?发布您尝试此操作时遇到的错误。现在也发布了错误消息。谢谢,这真是一个奇迹!文件:文件到字符串转换器是我所需要的。塔克斯!我认为错误是因为我在url前面写了http://在调用中生成了双http:。塔克斯/克莱斯
<flow name="rpg_uploadFlow1" doc:name="rpg_uploadFlow1">
    <file:inbound-endpoint path="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\OUT" moveToDirectory="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\sent" responseTimeout="10000" mimeType="text/xml" doc:name="File"/>

    <byte-array-to-string-transformer></byte-array-to-string-transformer>
  .....
<flow name="rpg_uploadFlow1" doc:name="rpg_uploadFlow1">
    <file:inbound-endpoint path="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\OUT" moveToDirectory="C:\Users\Claes\Documents\CD-utveckling\paper-rpg\sent" responseTimeout="10000" mimeType="text/xml" doc:name="File"/>

    <byte-array-to-string-transformer></byte-array-to-string-transformer>
  .....