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 Configuration文件 ,甚至还有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

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

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

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

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

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

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

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

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

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

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

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

  6. JAVA EE 7 SDK Tutorial分析

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

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

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

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

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

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

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

最新文章

  1. 出门问问工程副总裁黄美玉入选IEEE Fellow,曾担任微软Cortana首席NLP科学家
  2. php 一年中所有的天,PHP获取一年中的每星期的开始日期和结束日期
  3. stable_sort
  4. 面试必会系列 - 1.1 Java SE 基础
  5. 鸡蛋中营养和脂质含量与降低LDL的食物
  6. Testing Round #16 (Unrated) C. Skier(map的应用)
  7. Liunx安装gogs,mysql,jdk,tomcat等常用软件
  8. mysql 查看某数据库中所有表的行数,information_schema.tables不准确。count(*)拼接准确。
  9. Unity调用动态链接库dll和so
  10. 特斯拉造芯片:不能失去集成电路的高地,就像西方不能失去耶路撒冷
  11. python opencv读取图像并生成plt文件
  12. Mp4box的下载、安装和使用
  13. MacBook Pro 开机密码忘记的解决办法
  14. java中超过int的最大范围
  15. 如何用c语言实现猜数字游戏?
  16. Namenode HA原理详解
  17. 训练日记2019.11.13 冬至日
  18. 无线网能连接上但无法连接服务器是啥原因,腾达无线路由器能连接但是上不了网怎么办...
  19. 人工智能公司招聘资深java开发工程师
  20. 如何批量修改文件后缀名

热门文章

  1. 使用阿里云火车票查询接口案例——CSDN博客
  2. 2016蓝桥杯省赛---java---C---8(冰雹数)
  3. 2015蓝桥杯省赛---java---C---1(隔行变色)
  4. php破坏代码,php不破坏单词截取子字符串
  5. python3中urlopen_解决python3 urllib中urlopen报错的问题
  6. java 用流创建流_成为Java流大师–第1部分:创建流
  7. 阿帕奇跨域_阿帕奇齿轮泵
  8. gc垃圾收集器 与gc算法_GC解释:收集器概述
  9. junit jndi_使用Spring创建用于JUnit测试的JNDI资源
  10. jooq_jOOQ API设计缺陷的怪异事件