我正在使用mule studio, 我正在尝试一些例子。
当我做HTTP浏览器请求时,同时发出2个请求, 其中第一个是/favicon.ico,第二个请求是实际请求。
我的配置XML如下。
<?xml version="1.0" encoding="UTF-8"?>
<mule xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:file="http://www.mulesoft.org/schema/mule/file" xmlns:jms="http://www.mulesoft.org/schema/mule/jms" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns:spring="http://www.springframework.org/schema/beans" xmlns:core="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="CE-3.2.1" xsi:schemaLocation="
http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd
http://www.mulesoft.org/schema/mule/file http://www.mulesoft.org/schema/mule/file/current/mule-file.xsd
http://www.mulesoft.org/schema/mule/jms http://www.mulesoft.org/schema/mule/jms/current/mule-jms.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd ">
<jms:activemq-connector name="Active_MQ" brokerURL="tcp://localhost:61616" validateConnections="true" doc:name="Active MQ"/>
<flow name="Inititationflow" doc:name="Inititationflow">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8046" doc:name="HTTP"/>
<echo-component doc:name="Echo"/>
<jms:outbound-endpoint queue="BANK1" exchange-pattern="request-response" doc:name="JMS"/>
</flow>
<flow name="SampleTest" doc:name="SampleTest">
<jms:inbound-endpoint queue="BANK1" connector-ref="Active_MQ" doc:name="JMS"/>
<echo-component doc:name="Echo"/>
<append-string-transformer message="AppendedPart" doc:name="Append String"/>
<echo-component doc:name="Echo"/>
<file:outbound-endpoint path="C:\Documents and Settings\balajik\Desktop" outputPattern="myfile.txt" doc:name="File"/>
</flow>
</mule>
我什么时候做Http浏览器请求: LH:8046 / manasa-sundarraman
当2个请求出现时,流程执行两次。 请求是: 1)/favicon.ico 2)/ manasa-sunderraman
我的问题是/favicon.ico是什么? 为什么要作为请求来? 如何避免呢?
答案 0 :(得分:6)
我找到了清除favicon.ico请求的方法。 如果我们在中间添加过滤器,您就可以过滤favicon.ico请求。
<message-filter doc:name="Filter favicon">
<not-filter>
<wildcard-filter pattern="/favicon.ico" caseSensitive="true"/>
</not-filter>
</message-filter>
在回显Http请求后添加它解决了问题
答案 1 :(得分:2)
MuleSoft basic tutorial提供了一个解决方案,可以使用3.6 +中的新HTTP侦听器:
<expression-filter expression="#[message.inboundProperties.'http.request.uri' != '/favicon.ico']" doc:name="Filter favicon"/>
对于3.5.0及更低版本:
<expression-filter expression="#[payload != '/favicon.ico']" doc:name="Filter favicon"/>