日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

java ee各类组件_在Java EE组件中使用骆驼路线

發(fā)布時(shí)間:2023/12/3 java 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java ee各类组件_在Java EE组件中使用骆驼路线 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

java ee各類組件

從現(xiàn)在開(kāi)始我一直在與Camel合作,我真的很喜歡它的簡(jiǎn)單性。 在Java EE之上使用它一直是一個(gè)挑戰(zhàn),我最近發(fā)表了一篇關(guān)于如何做到這一點(diǎn)的演講,而在Java EE中引導(dǎo)Camel的不同方法實(shí)際上建議使用WildFly-Camel Subsystem 。 在正在進(jìn)行的系列文章中,我將探討實(shí)現(xiàn)此目標(biāo)的不同方法,并提供大量示例,而這些示例仍是演講中所缺少的。 我很高興在評(píng)論中或通過(guò)Twitter上的@myfear收到您的反饋和要求。

WildFly 8.2駱駝入門

Wildfly-Camel子系統(tǒng)提供了Apache Camel與WildFly Application Server的集成。 它允許您將駱駝路線添加為WildFly配置的一部分。 路由可以部署為Java EE應(yīng)用程序的一部分。 Java EE組件可以訪問(wèn)Camel Core API和各種Camel Component API。 您的企業(yè)集成解決方案可以構(gòu)造為Java EE和Camel功能的組合。

備注:WildFly-Camel的3.x版本預(yù)計(jì)將支持最新的WildFly 9。

準(zhǔn)備好

將WildFly 8.2.0.Final下載并解壓縮到您選擇的文件夾中。 將wildfly-camel補(bǔ)丁 (2.3.0)下載并解壓縮到wildfly文件夾。 從開(kāi)始WildFly

bin/standalone[.bat|.sh] -c standalone-camel.xml

最快的啟動(dòng)和運(yùn)行方法之一是使用Docker和WildFly Camel映像 。 該映像與WildFly 8.1和已安裝的Camel子系統(tǒng)捆綁在一起。

定義和使用駱駝上下文

CamelContext表示單個(gè)Camel路由規(guī)則庫(kù)。 您使用CamelContext的方式類似于Spring ApplicationContext。 它包含您應(yīng)用程序的所有路由。 您可以根據(jù)需要擁有任意多個(gè)CamelContext,只要它們具有不同的名稱即可。 WildFly-Camel讓我們將它們定義為a)作為子系統(tǒng)定義本身的一部分在standalone-camel.xml和domain.xml中定義,以及b)或在包含-camel-context.xml后綴文件的受支持的部署工件中進(jìn)行部署 c)可以通過(guò)RouteBilder和CDI集成與路由一起提供。

可以通過(guò)兩種不同的方式使用已定義的CamelContext:a) 通過(guò)Camel-CDI @ Injected或b)從JNDI樹(shù)訪問(wèn)。

示例上下文和路由

對(duì)于以下示例,我將使用上下文以及通過(guò)CDI和RouteBuilder提供的關(guān)聯(lián)路由。 它是一個(gè)應(yīng)用程序范圍的Bean,它隨應(yīng)用程序啟動(dòng)自動(dòng)啟動(dòng)。 @ContextName批注為CamelContext提供一個(gè)特定的名稱。

@ApplicationScoped @Startup @ContextName("cdi-context") public class HelloRouteBuilder extends RouteBuilder {@InjectHelloBean helloBean;@Overridepublic void configure() throws Exception {from("direct:start").transform(body().prepend(helloBean.sayHello()).append(" user."));} }

路線本身并不完全具有挑戰(zhàn)性。 它從direct:start中獲取一個(gè)空的消息正文,并從CDI bean方法“ sayHello”的輸出開(kāi)始添加前置字符串“ user”。 對(duì)此。 作為參考,完整的代碼可以在我的GitHub帳戶上找到 。 因此,我們接下來(lái)需要了解的是如何在各種Java EE組件規(guī)范中使用此路由。

從CDI使用駱駝

Camel從2.10版本開(kāi)始支持CDI。 在子系統(tǒng)之前和之外,需要對(duì)其進(jìn)行引導(dǎo)。 這不再是必須的,您只需在名稱中簡(jiǎn)單地@Inject即可在@Named CDI bean中使用已部署或定義的CamelContext:

@Inject@ContextName("cdi-context")private CamelContext context;

在JSF,JAX-RS和EJB中使用駱駝

有了有關(guān)如何在CDI中使用CamelContext的知識(shí),您將假定,很容易從JSF等中進(jìn)行相同的操作。 這不是真的。 實(shí)際上,您不能將其注入綁定到JSF組件的ManagedBean甚至CDI Bean中。 另外,它在EJB中不起作用。 我沒(méi)有詳細(xì)研究它,但假定它與范圍有關(guān)。 一個(gè)合理的解決方法,實(shí)際上是一個(gè)更好的應(yīng)用程序設(shè)計(jì),是將完整的Camel邏輯放入單獨(dú)的CDI bean中,然后將其注入。

@Named public class HelloCamel {@Inject@ContextName("cdi-context")private CamelContext context;private final static Logger LOGGER = Logger.getLogger(HelloCamel.class.getName());public String doSomeWorkFor(String name) {ProducerTemplate producer = context.createProducerTemplate();String result = producer.requestBody("direct:start", name, String.class);LOGGER.log(Level.INFO, result);return result;} }

通過(guò)ProducerTemplate接口,您可以通過(guò)各種不同的方式將消息交換發(fā)送到端點(diǎn),從而可以輕松地從Java代碼使用Camel Endpoint實(shí)例。 在這種特殊情況下,它只是開(kāi)始路由,并將String放入正文中,該String表示我正在使用它的組件的名稱。

CDI Bean充當(dāng)組件的后備bean,僅使用它:

@InjectHelloCamel helloCamel;public String getName() {return helloCamel.doSomeWorkFor("JSF");}

返回字符串為“ Hello JSF user”。 這也將寫入WildFly服務(wù)器日志。 對(duì)于所有其他Java EE組件,最好使用相同的方法。

從EJB使用駱駝

如果您使用EJB作為man應(yīng)用程序組件模型,那么僅使用JNDI方法也是非常合理的:

CamelContext camelctx =?(CamelContext) inicxt.lookup("java:jboss/camel/context/cdi-context");

Hawtio –駱駝控制臺(tái)

子系統(tǒng)中的另一個(gè)隱藏的寶石是Hawtio控制臺(tái)的捆綁。 它是一個(gè)用于管理Java內(nèi)容的模塊化Web控制臺(tái),并具有一個(gè)Apache Camel插件,可可視化您的上下文和路由。 請(qǐng)記住,它是自動(dòng)配置的安全性,您需要添加管理用戶才能訪問(wèn)它。

進(jìn)一步閱讀和幫助

  • 在Freenode上與開(kāi)發(fā)人員交談
  • WildFly-Camel子系統(tǒng)文檔
  • GitHub上的WildFly Camel
  • Apache Camel網(wǎng)站

翻譯自: https://www.javacodegeeks.com/2015/07/using-camel-routes-in-java-ee-components.html

java ee各類組件

總結(jié)

以上是生活随笔為你收集整理的java ee各类组件_在Java EE组件中使用骆驼路线的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。