摘要:最近遇到了一個項目需求,技術選型選擇了,需要對外提供接口。考慮到我們的對外接口需要進行分類,需要在原來的路徑映射加上前綴。這個開源組件原來的示例表示路徑,表示的具體實現。
Java的世界屬于開源的世界,所謂開源的世界,只要你能想到的點子就一定有人實現了,沒有你就自己造一個啊。
最近遇到了一個項目需求,技術選型選擇了webservice,需要對外提供webservice接口。實現webserice功能可以有多種做法的,比如servlet + tomcat的方式,Java Main方法+嵌入jetty server的方式,本質上是XML/HTTP的原理(誤?)。
項目組對外提供接口的功能已經選擇了HTTP/Netty的方式,既然已經有HTTP的支持了,那么XML/HTTP On Netty或許是個不錯的點子,這樣我們不用再引入tomcat等服務應用了。
經過一番搜索,終于發現了netty-jax-ws這款組件,非常符合我們的需求,于是就采用了它完成了開發工作。
考慮到我們的對外接口需要進行分類,需要在原來的URL路徑映射加上前綴。
這個開源組件原來的示例
mappings.put("/echoService", echoWebService);
key表示URL路徑,value表示webservice的具體實現。
此時我們給它加上前綴
mappings.put("/honey/echoService", echoWebService);
比如之前的訪問方式http://localhost:4040/echoService?wsdl,這回我們的訪問路徑應該是http://localhost:4040/honey/echoService?wsdl,
只不過這回意外的是服務給我們返回的是404的結果,看來我們的路徑是不正確的,或者這個訪問路徑找不到實現的webservice(類似MVC框架中的Controller)。
這個問題的原因很快就排查出來的,我覺得可能自己就能解決,于是乎就fork了項目試著改動起來,參見這個提交commit1,至此暫告一段落了。
這部分功能代碼就加入到了原來的項目中,只不過已經打包部署就發現,只要訪問webservice功能http://localhost:4040/honey/echoService?wsdl,
就會報錯:NoSuchMethodError, 然后是xx.jboss.netty.xx.ChannelFactory諸如此類的錯誤,我第一個感覺就是netty-jax-ws和原來的項目使用的Netty版本沖突了。
此時我請教我們組經驗豐富的同事,遇到這種情況要不要迎難而上呢,還是另辟蹊徑呢?(當然,當時肯定是口語化的表達)。
既然我前面已經改造過一回,不在乎再一次了,所以就有了這次commit2。
以上算是我真正意義地上參與了一次開源貢獻,我只是做了一點工作而已了。
-- EDIT --
這次修改是為了支持通過代理的方式訪問webservice,支持了HTTP Host請求頭,修改參見commit3
文章屬個人觀點,與本人工作雇主無關!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/110352.html
摘要:都是分開部署,單獨上線的。序列化畢竟是遠程通信,需要將對象轉化成二進制流進行傳輸。服務化架構的演進架構當業務規模很小時,將所有功能都不熟在同一個進程中,通過雙機或者負載均衡器實現負債分流此時,分離前后臺邏輯的架構是關鍵。 showImg(https://segmentfault.com/img/bVbiI2F?w=2250&h=1500); 前言 為什么需要RPC,而不是簡單的HTTP...
摘要:,將類或枚舉類型映射到模式類型,控制字段或屬性的序列化。表示將自動綁定類中的每個非靜態的非瞬態的由標注字段到。,對于數組或集合即包含多個元素的成員變量,生成一個包裝該數組或集合的元素稱為包裝器。 在經過前面兩篇文章的學習,我已經能夠熟練創建一個正常運行的spring-ws的webservice服務,大多數接口,都是要有返回數據,所以這篇文章就是學習spring-ws怎么實現返回數據 實...
摘要:如需遠程訪問,則需在配置文件中設置,然后重啟。詳見如果是同個容器,直接使用即可,這里是演示了不同容器或主機下的情況訪問即可 文章開始,先摘錄一下文中各軟件的官方定義Scrapy An open source and collaborative framework for extracting the data youneed from websites.In a fast, simpl...
摘要:如需遠程訪問,則需在配置文件中設置,然后重啟。詳見如果是同個容器,直接使用即可,這里是演示了不同容器或主機下的情況訪問即可 文章開始,先摘錄一下文中各軟件的官方定義Scrapy An open source and collaborative framework for extracting the data youneed from websites.In a fast, simpl...
摘要:后端好書閱讀與推薦系列文章后端好書閱讀與推薦后端好書閱讀與推薦續后端好書閱讀與推薦續二后端好書閱讀與推薦續三這里依然記錄一下每本書的亮點與自己讀書心得和體會,分享并求拍磚。然后又請求封鎖,當釋放了上的封鎖之后,系統又批準了的請求一直等待。 后端好書閱讀與推薦系列文章:后端好書閱讀與推薦后端好書閱讀與推薦(續)后端好書閱讀與推薦(續二)后端好書閱讀與推薦(續三) 這里依然記錄一下每本書的...
閱讀 1669·2021-11-19 09:40
閱讀 2924·2021-09-24 10:27
閱讀 3215·2021-09-02 15:15
閱讀 1876·2019-08-30 15:54
閱讀 1202·2019-08-30 15:54
閱讀 1369·2019-08-30 13:12
閱讀 625·2019-08-28 18:05
閱讀 2794·2019-08-27 10:53