最近在開發一個ESB項目,用於將json形式的請求數據,轉換爲對Web Service服務器的接口調用,再將Web Service接口的返回xml報文轉換爲json形式的響應。json
使用Mule ESB Anypoint Studio進行開發,能夠完成這個需求,可是Anypoint Studio創建的ESB項目有兩個很大的問題:服務器
1)對Maven的支持很是糟糕,Anypoint Studio創建的Mule Maven項目,使用的maven 編譯plugin是它自帶的tools plugin,這個插件在將ESB項目編譯成能夠部署在Mule Standalone環境下的zip包時,須要自行從Mule Enterprise Repository下載每一個企業版jar包對應的parent pom,因爲咱們沒有購買Mule 企業版,沒有Enterprise Repository的帳號,因此沒法下載這個pom文件,而沒有這個pom文件,tools plugin在編譯解析validation jar包時沒法解析這個jar包的描述信息,致使編譯失敗。若是去掉Maven支持,能夠繞過這個驗證,可是當存在第三方庫包時,對這些庫包的管理將很是不方便(尤爲是Spring的包)。負載均衡
2)對集羣的支持很差,若是不購買Mule ESB企業版,將沒法使用企業版提供的集羣,負載均衡,監控等功能,可是企業版的費用是很是可觀的。maven
基於這兩個緣由,咱們決定將開發出的ESB項目轉換爲能夠部署在Tomcat的Web項目,在這個過程當中遇到了不少的坑,在下面將一一說起。插件