camel java

Enterprise Java具有不同的风格和观点。 从简单的平台技术(众所周知的Java EE)开始,到不同的框架和集成方面,最后是涉及以数据为中心的用户界面或特定可视化效果的用例。 Java EE本身无法解决的最突出的问题是“集成”。 有许多来自知名供应商的产品,它们可以解决各种集成问题并承诺提供完整的解决方案。 作为开发人员,您不时需要的只是一个可行的解决方案。 对于系统集成,这是Java EE开发人员的最终“入门资源”。

一点整合理论

集成挑战并不是什么新鲜事物。 由于存在不同类型的系统,并且需要将其数据组合到另一个系统中,因此这一直是中心主题。 Gregor Hohpe和Bobby Woolf开始收集用于解决客户集成问题的一组基本模式。 这些企业集成模式 (EIP)可被视为集成的圣经。 它试图通过定义65种集成模式来找到有关异步消息传递体系结构的通用词汇和知识体系。 Forrester将其称为“ EAI的核心语言”。

什么是Apache Camel?

Apache Camel为您提供了EIP的接口,基础对象,通常需要的实现,调试工具,配置系统以及许多其他帮助器,当您要实现遵循EIP的解决方案时,将为您节省大量时间。 这是一个完整的生产就绪框架。 但这并不能止于最初定义的65个模式 。 它扩展了150多个现成的组件 ,可以解决端点或系统或技术集成方面的各种问题。 在较高的层次上,Camel由CamelContext组成,其中包含Component实例的集合。 组件本质上是Endpoint实例的工厂。 您可以在Java代码或IoC容器(例如Spring,Guice或CDI)中显式配置Component实例,也可以使用URI自动发现它们。

Java EE开发人员为什么要关心?

企业项目要求我们这样做。 处理各种系统集成一直是一个具有挑战性的话题。 您可以通过使用消息传递系统选择复杂的道路,并将其连接到您的应用程序中,然后自己实现所有功能,也可以通过使用不同的产品走上繁重的道路。 从那时起,我一直是更实用的解决方案的粉丝。 这就是Camel的实际含义:相对轻巧,易于引导,并附带大量预构建的集成组件,使开发人员可以专注于解决其背后的业务需求。 无需学习新的API或工具。 Camel带有基于Java的Fluent API , Spring或Blueprint XML配置文件 ,甚至还有Scala DSL 。 因此,无论您从哪一个基地开始,您总会发现一些您已经知道的东西。

如何开始?

我懂了吗 想试试看? 这也很容易。 根据您使用的框架和平台,您有不同的方式。 回顾帖子标题,本文将重点介绍Java EE。

因此,您可以做的第一件事就是自行引导骆驼。 您需要的只是核心骆驼依赖关系和cdi-camel依赖关系。 设置一个简单的Java EE 7 maven项目并添加这两个项目已足够。

<dependency><groupId>org.apache.camel</groupId><artifactId>camel-core</artifactId><version>${camel.version}</version>
</dependency>
<dependency><groupId>org.apache.camel</groupId><artifactId>camel-cdi</artifactId><version>${camel.version}</version>
</dependency>

接下来需要做的是找到一个注入第一个CamelContext的地方。

@InjectCdiCamelContext context;

注入所有内容后,您可以开始向其中添加路由。 在GitHub上的CamelEE7项目中可以找到更完整的示例。 只需叉子就可以了。 这将在随机的Java EE应用程序服务器上工作。 如果您已经在使用WildFly ,则还可以充分利用WildFly-Camel子系统 。

WildFly骆驼子系统

wildfly-camel的策略是,用户可以在WildFly已经支持的部署中“仅使用”骆驼核心/组件API。 换句话说,Camel应该在标准Java EE部署中“正常工作”。 二进制文件由平台提供。 部署无需担心模块/接线细节。

定义和部署骆驼上下文可以以不同的方式完成。 您可以在standalone-camel.xml服务器配置中直接定义上下文,也可以将其作为Web应用程序的一部分部署为带有预定义-camel-context.xml文件后缀的单个XML文件,也可以作为另一个WildFly支持的一部分进行部署部署为META-INF / jboss-camel-context.xml文件。

WildFly Camel测试套件使用WildFly Arquillian管理的容器。 这可以连接到已经运行的WildFly实例,也可以在需要时启动独立服务器实例。 已经实现了许多测试增强器,使您可以将这些WildFly Camel特定类型注入Arquillian测试用例中。 您可以将CamelContextFactory或CamelContextRegistry注入为@ArquillianResource。

如果您要开始使用它,可以阅读我更详细的博客文章的详细信息 。

寻找例子


如果您很兴奋,并且一切都准备就绪并且可以运行,那么现在该深入探讨一些示例了。 首先要看的是发行版中的示例目录 。 有您可能需要的所有示例。

最重要的用例之一是与ActiveMQ的紧密集成。 并假设您有一堆JMS消息需要转换为存储在文件系统中的文件:这是一项完美的Camel作业。 您需要配置ActiveMQ组件 ,而不是上面所看到的,它还允许使用Apache ActiveMQ将消息发送到JMS队列或主题,或者从JMS队列或主题使用消息。

以下代码向您展示了如何将JMS消息从test.queue队列转换为文件组件,该文件组件将使用它们并将它们存储到磁盘。

context.addRoutes(new RouteBuilder() {public void configure() {from("test-jms:queue:test.queue").to("file://test");}});

想象一下自己做。 需要更多复杂的示例吗? 与Twitter集成? 还是其他不同的技术? 有很多示例可供选择。 可能是骆驼最令人兴奋的方面之一。 它轻巧,稳定,并且已经存在多年了。 确保还遵循邮件列表和论坛 。

翻译自: https://www.javacodegeeks.com/2014/12/lightweight-integration-with-java-ee-and-camel.html

camel java

camel java_与Java EE和Camel的轻量级集成相关推荐

  1. 与Java EE和Camel的轻量级集成

    Enterprise Java具有不同的风格和观点. 从简单的平台技术开始,即众所周知的Java EE,再到不同的框架和集成方面,最后是涉及以数据为中心的用户界面或特定可视化效果的用例. Java E ...

  2. docker 部署java_使用Java EE 7,WildFly和Docker进行持续部署–(第1部分)

    docker 部署java 此博客是开始一个新的hanginar(G + 结伴旅游+ webi NAR),将突出解决方案,框架,应用服务器,工具,部署和更多的内容集中在Java EE的系列. 这些不是 ...

  3. 在 Java EE 组件中使用 Camel Routes

    2019独角兽企业重金招聘Python工程师标准>>> 摘要:你可以通过集成 Camel 和 WildFly 应用服务器(使用 WildFly-Camel 子系统)在 Java EE ...

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

    java ee各类组件 从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上使用它一直是一个挑战,我最近发表了一篇关于如何做到这一点的演讲,而在Java EE中引导Cam ...

  5. 在Java EE组件中使用骆驼路线

    从现在开始我一直在与Camel合作,我真的很喜欢它的简单性. 在Java EE之上始终使用它一直是一个挑战,而我最近发表的有关如何做到这一点的演讲之一以及Java EE中引导Camel的不同方法实际上 ...

  6. java ee domain作用_java EE应用概述

    1.javaEE应用的分层模型 不管是经典的Java EE架构,还是轻量级的Java EE架构,大致上都可以分为以下几层: Damain Object(领域对象)层:该层是由系列的POJO(普通的,传 ...

  7. Java Web学习总结(41)——Java EE 8 新功能展望

    Java EE 7简介 Java EE 作为一个企业应用的部署平台,具有很好的健壮性.能够提供强大的 Web 服务且非常易于部署.这些年来,通过其不断发展,它已大大简化了以服务器为中心的应用程序的开发 ...

  8. JAVA EE 7 SDK Tutorial分析

    随着Java平台企业版(Java EE),Java企业应用程序的开发从未如此简单或更快.在Java EE 7平台的目的是向开发人员提供了一套强大的API,同时缩短开发时间,降低了应用的复杂性,并提高应 ...

  9. java8 camel_WildFly 8的Camel子系统集成了Java EE –入门

    java8 camel 就在三天前,围绕Thomas Diesler( @tdiesler )的团队发布了WildFly-Camel子系统的2.0.0.CR1版本,它允许您将Camel Routes添 ...

最新文章

  1. 告别痛苦,快乐学习Pandas!开源教程《Joyful-Pandas》发布
  2. 蓝桥杯java 算法提高 摆花
  3. VC++使用MCI播放音频文件
  4. 【直播预告 | 今天10:30】多媒体技术 PI 第一期:OSS圆桌
  5. python和区块链哪个好_10个最流行的Python区块链开源项目
  6. matlab指派问题求法,matlab求解指派问题
  7. 三大重组股上涨最具爆发力!
  8. python数据分析案例简单实战项目(一)--供应链销售数据分析
  9. web字体文件过大优化方案
  10. 黄金分割法求函数最小值
  11. C++900行代码实现中国象棋游戏规则以及相关功能
  12. 一些电子资源的分享(1)
  13. Linux系统裁剪summary
  14. 一年三 季 醋 泡 姜
  15. 联想台式机计算机接口,如果不能使用Lenovo台式计算机的USB接口怎么办
  16. 设置x轴文字换行展示
  17. C#产生随机数之一 生成真随机数
  18. UbuntuAVI视频无法播放问题
  19. 『开源』基于jq的数学公式编辑器插件(可嵌入项目)(web前端)
  20. Android开发资料

热门文章

  1. P2513-[HAOI2009]逆序对数列【dp,前缀和】
  2. POJ1958-Strange Towers of Hanoi【递推】
  3. 2021牛客暑期多校训练营3 G-Yu Ling(Ling YueZheng) and Colorful Tree(cdq分治)
  4. 《信号与系统》期中总结
  5. 闲来无事刷水题、简单博弈论专题、sg函数、洛谷
  6. SpringCloud Greenwich(五)之nacos、dubbo、Zuul和 gateway集成
  7. Dubbo(十)之配置加载流程
  8. div中的table内容过多时不超出div的范围解决方法
  9. 推荐一个在线创作流程图、思维导图软件—ProcessOn
  10. 【Ajax】创建并封装