我有下面的代碼在「HTTP://本地主機:8080 /阿爾法」:配置澤西服務如何從Mule入站端點中的一組URI中過濾單個URI?
*** my mule config ***
<flow name="flow1">
<inbound-endpoint address="http://localhost:8080/" exchange-pattern="request-response" />
<jersey:resources>
<component>
<singleton-object class="com.address.Flow1Resource"/>
</component>
</jersey:resources>
</flow>
*** Flow1Resource.java ***
@Path("/alpha")
public class Flow1Resource {...}
我想添加一個新的入站端點,處理在「HTTP中的所有地址: // localhost:8080「,除了」http:// localhost:8080/alpha「(例如」http:// localhost:8080/beta「)。這些新地址需要一個球衣資源。例如:
*** my mule config ***
<flow name="flow1">
<inbound-endpoint address="http://localhost:8080/" exchange-pattern="request-response" />
<jersey:resources>
<component>
<singleton-object class="com.address.Flow1Resource"/>
</component>
</jersey:resources>
</flow>
<flow name="flow2">
<inbound-endpoint address="http://localhost:8080/*" exchange-pattern="request-response" />
<jersey:resources>
<component>
<singleton-object class="com.address.Flow2Resource"/>
</component>
</jersey:resources>
</flow>
*** Flow1Resource.java ***
@Path("/alpha")
public class Flow1Resource {...}
*** Flow2Resource.java ***
@Path("/")
public class Flow2Resource {
@Path("beta")
public void beta() {...}
@Path("gamma")
public void gamma() {...}
...
}
如何設置了騾子的入站端點捕捉到所有的地址(即測試版&伽馬),除了特定的URL(即阿爾法)。
我知道我可以在mule配置中對路徑進行硬編碼,但是這會導致重複,因爲每個地址(即betagamma)都需要它自己的流和資源代碼,它們是相似的。
請注意,我在上面的代碼中使用了「http:// localhost:8080/*」作爲概念示例。這是行不通的。
---更新---
我忘了提及的是,β和γ的URI還帶有安全使用:
<http:inbound-endpoint ...>
<spring-security:http-security-filter realm="mule-realm"/>
</http:inbound-endpoint>
我嘗試添加一個「選擇」元素的端點,但它抱怨春季安全在選擇決策結構內無效。
解決方案還需要適應此功能。
你的意思是最常見的HTTP屬性列表?你是否只需要alpha或beta進行驗證? – genjosanzo 2012-07-08 14:10:06