在我的Mule 2.X配置中,我需要将消息作为URL参数发布。因此,我创建了一个具有入站的服务,然后尝试使用rest-service-component
发送消息,如下所示:
<service name="myService">
<inbound>
<vm:inbound-endpoint path="path/inbound" synchronous="true" connector-ref="myVmConnector"/>
</inbound>
<http:rest-service-component serviceUrl="http://www.domain.com/path/insert.asp" httpMethod="POST">
<http:payloadParameterName value="data_xml"/>
</http:rest-service-component>
</service>
但是当我通过它处理消息时,我收到以下信息:
Message : There are at least 2 connectors matching protocol "http", so the connector to use must be specified on the endpoint using the 'connector' property/attribute (java.lang.IllegalStateException)
Type : org.mule.transport.service.TransportFactoryException
Code : MULE_ERROR--2
http://www.mulesource.org/docs/site/current2/apidocs/org/mule/transport/service/TransportFactoryException.html
通常,如果配置了多个HTTP连接器,然后需要在端点(connector-ref
)上指定连接器,则会发生此错误。但是rest-service-component
没有这样的属性或子元素(http://www.mulesoft.org/documentation-3.2/display/MULE2USER/HTTP+Transport)
答案 0 :(得分:1)
这是一个尚未解决的非常老的错误:
https://www.mulesoft.org/jira/browse/MULE-4272
尝试使用http:outbound-endpoint。
更新:
尝试使用Groovy脚本组件代替其余组件来创建对Mule 2中的动态URL的调用。这样的事情可能有用:
eventContext.sendEvent(message,"http://www.domain.com/path/insert.asp?data_xml=${payload}")
根据您的有效负载,您可能还必须对其进行URL编码。