使用WildFly 8在Java EE7中自举Apache Camel
從Camel版本2.10開始,支持CDI(JSR-299)和DI(JSR-330)。 這為在Java EE容器中以及獨立Java SE或CDI容器中開發(fā)和部署Apache Camel項目提供了新的機會。 是時候嘗試一下并熟悉它了。
駱駝到底是什么?
駱駝是一個集成框架。 有些人喜歡將其稱為ESB-lite。 但最后,這是在集成項目中取得成功的非常注重開發(fā)人員和組件的方式。 您有80多個預(yù)構(gòu)建組件可供選擇,并且它們基本上包含了企業(yè)集成模式的完整覆蓋,這些都是眾所周知的并且可以使用。 考慮到所有這些,想出一個答案并不容易。 如果您需要一個,它可能是這樣的:它是消息技術(shù)與路由的結(jié)合。 它將消息的起點和終點連接在一起,從而允許將消息從不同的源傳輸?shù)讲煌哪康牡亍?
我為什么在乎?
對于企業(yè)級軟件,我顯然感到很興奮。 但始終喜歡更實用的解決方案。 關(guān)于何時使用Apache Camel以及隨著在非常異構(gòu)的平臺上集成不同系統(tǒng)的需求不斷增長,有一些不錯的博客文章,擁有成熟的解決方案總是很方便的。 那里的大多數(shù)示例都是從引導(dǎo)完整的Camel魔術(shù)開始的,包括基于XML的Spring DSL及其強制性的依賴項。 那把一切都炸毀了,我不想接受。 知道必須有一種輕量級的方法(Camel-Core在12.13.2版中為2.5 MB),我正在研究如何自己引導(dǎo)它。 并使用其中的一些CDI魔術(shù)。
首先尋找想法的地方
顯然是GitHub上的Java EE示例項目 。 一些不安定的社區(qū)成員收集了許多很棒的示例供您入門。 這里的最終目標(biāo)是提供有關(guān)如何在Java EE傘中使用不同規(guī)范的參考。 但是甚至包括一些額外的內(nèi)容,并展示了來自不同領(lǐng)域的示例,例如NoSQL,Twitter,Quartz Scheduling和最后但并非最不重要的Camel集成。 如果您按照最新的WildFly 8.1運行它,它將無法正常工作。 Camel的cdi擴展使其執(zhí)行起來有些棘手,但是如相應(yīng)的問題所述 ,有一種方法可以通過創(chuàng)建自定義否決擴展來擺脫模糊的CDI依賴。 該問題已提交給駱駝 ,我聽說他們正在研究改善情況。 如果您想嘗試該示例,請轉(zhuǎn)到我的GitHub存儲庫并查找CamelEE7項目。
我是怎么做到的?
Bootstrap.java是一個@Singleton EJB,它在應(yīng)用程序啟動時加載(請記住, 在Java EE中有不同的啟動方法 ),通過@Inject org.apache.camel.cdi.CdiCamelContext您可以訪問Camel 。 這個小例子使用另一個HelloCamel bean展示了如何在CDI集成中使用有效負(fù)載。
確保查看CamelCdiVetoExtension.java及其在META-INF文件夾中的配置方式。 現(xiàn)在您可以開始了。 編碼愉快。
和最后的最好
Camel 12.14 已經(jīng)面世,計劃于9月發(fā)布。 如果您有任何疑問或希望在其中看到,現(xiàn)在是時候發(fā)言了 !
即將推出的令人敬畏的新功能的摘錄:
- 指標(biāo)組件
- DSL提供休息服務(wù)
- 搖搖欲墜的組件
是時候變得興奮了!
翻譯自: https://www.javacodegeeks.com/2014/09/bootstrapping-apache-camel-in-java-ee7-with-wildfly-8.html
總結(jié)
以上是生活随笔為你收集整理的使用WildFly 8在Java EE7中自举Apache Camel的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 湖南有哪些市(2021年湖南省各市GDP
- 下一篇: Java EE 7批处理和魔兽世界–第1