apache camel_使用WildFly 8在Java EE7中自举Apache Camel

apache camel

从Camel版本2.10开始,支持CDI(JSR-299)和DI(JSR-330)。 这为在Java EE容器中以及在独立的Java SE或CDI容器中开发和部署Apache Camel项目提供了新的机会。 是时候尝试一下并熟悉它了。

骆驼到底是什么?

骆驼盒小
骆驼是一个集成框架。 有些人喜欢将其称为ESB-lite。 但最后,这是在集成项目中取得成功的非常注重开发人员和组件的方式。 您有80多个预构建组件可供选择,并且它们基本上包含了企业集成模式的完整介绍,这些都是众所周知的并且可以使用。 考虑到所有这些,想出一个答案并不容易。 如果您需要一个,它可能是这样的:它是消息技术与路由的结合。 它将消息传递的起点和终点连接在一起,从而允许将消息从不同的源传输到不同的目的地。

我为什么在乎?

对于企业级软件,我显然感到很兴奋。 但始终喜欢更实用的解决方案。 关于何时使用Apache Camel以及随着在非常异构的平台上集成不同系统的需求不断增加,有一些不错的博客文章,拥有成熟的解决方案总是很方便的。 那里的大多数示例都是从引导完整的Camel魔术开始的,包括基于XML的Spring DSL及其必需的依赖项。 那把一切都炸毁了,我不想接受。 知道必须有一种轻量级的方法(Camel-Core在12.13.2版中为2.5 MB),我一直在研究如何自己引导它。 并使用其中的一些CDI魔术。

首先寻找想法的地方

显然是GitHub上的Java EE示例项目 。 一些不安定的社区成员收集了大量的示例供您入门。 这里的最终目标是提供有关如何在Java EE伞中使用不同规范的参考。 但是甚至包括一些额外的内容,并展示了来自不同领域的示例,例如NoSQL,Twitter,Quartz Scheduling和最后但并非最不重要的Camel集成。 如果您按照最新的WildFly 8.1运行它,它将无法正常工作。 Camel的cdi扩展使其执行起来有些棘手,但是如相应问题中所述 ,有一种方法可以通过创建自定义否决扩展来摆脱模糊的CDI依赖关系。 该问题已提交给骆驼 ,我听说他们正在研究改善情况。 如果您想尝试该示例,请转到我的GitHub存储库并查找CamelEE7项目。

我是怎么做到的?

Bootstrap.java是一个@Singleton EJB,它在应用程序启动时加载(请记住, 在Java EE中有不同的启动方法 ),通过@Inject org.apache.camel.cdi.CdiCamelContext您可以访问Camel 。 这个小例子使用另一个HelloCamel bean展示了如何在CDI集成中使用有效负载。

确保查看CamelCdiVetoExtension.java及其在META-INF文件夹中的配置方式。 现在您可以开始了。 编码愉快。

和最后的最好

Camel 12.14 已经面世,计划于9月发布。 如果您有任何疑问或希望在其中看到,现在是时候发言了 !

即将推出的令人敬畏的新功能的摘录:

  • 指标组件
  • DSL提供休息服务
  • 摇摇欲坠的组件

是时候变得兴奋了!

翻译自: https://www.javacodegeeks.com/2014/09/bootstrapping-apache-camel-in-java-ee7-with-wildfly-8.html

apache camel

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339727.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python中可变参数怎么传递的呢_在python中,你可以在命名参数后传递可变参数吗?...

can you pass variadic arguments after named parameters?Python 3.4.3:答案是肯定的.如果要调用仅命名固定参数的函数,请将可变参数放在函数定义中def function(*args, bob, sally):print(args, bob, sally)values [1, 2, 3, 4]function(bob"Hi bob",…

Hibernate中保存与持久性以及saveOrUpdate之间的区别

保存与保存或更新与持久保存在Hibernate中 save和saveOrUpdate之间的区别是什么或save和persist之间的区别是任何Hibernate面试中常见的面试问题,就像Hibernate中get和load方法之间的区别一样。 Hibernate Session类提供了几种方法,可以通过诸如save&am…

java的log计算_Java普通对数(log)计算方法

Java给我提供的数学计算的工具类Math计算对数的函数有两个:/*** Returns the natural logarithm (base e) of a {code double}* value. Special cases:* If the argument is NaN or less than zero, then the result* is NaN.* If the argument is positive infinit…

javaee编程题_在JavaEE中使用CDI的简单面向方面的编程(AOP)

javaee编程题我们编写满足特定业务逻辑的服务API。 涵盖所有服务API(如安全性,日志记录,审核,度量延迟等)的跨领域问题很少。 这是一个重复的非业务代码,可以在其他方法之间重用。 重用的一种方法是将这些重…

java中的语句有哪些_java中的循环语句有哪些

Java中有三种主要的循环结构:while 循环do…while 循环for 循环顺序结构的程序语句只能被执行一次。如果您想要同样的操作执行多次,,就需要使用循环结构。一、while循环语法:while( 布尔表达式 ) {     //循环内容   }只要符合布尔表达…

使用自动伸缩组在AWS中运行安全数据库集群

当您必须在AWS上运行可伸缩应用程序时,您的数据库也必须可伸缩。 扩展无状态应用程序层更容易,在无状态应用程序层中,每个节点大部分都是可使用的-即使3节点集群中的一个节点发生故障,您也可以启动另一个节点,而没人注…

php无法新数据类型,新手入门PHP必知的七种数据类型

想要入门PHP,首先要学会搭建环境,其次是学习基础语法。PHP的基础包括数据类型,运算符,变量和常量等。在这篇文章中,我们主要了解什么是数据类型。数据类型是指同种数据的一个统称,一般会描述为XX数据类型。…

java batch_Java EE 7 Batch中传递属性/参数的2种方式

java batch谈到Java EE 7批处理功能,有两种方法可以将属性/参数传递给块和批处理。 本快速指南向您展示了两种方式,在开发批处理Java EE 7方式时可能会经常使用它们。 1.运行前预定义的属性/参数 预定义属性是您在部署应用程序之前定义的属性&#xff0…

攻防世界web高手进阶php_rce,php_rce 攻防世界xctf web

php_rce首先了解ThinkPHP5.x rec 漏洞分析与复现https://blog.csdn.net/qq_40884727/article/details/101452478var_pathinfo的默认配置为s,我们可以通过$_GET[‘s’]来传参于是构造payloadhttp://111.198.29.45:30600/index.php?sindex/\think\App/invokefunction&functi…

具有InlfuxDB的Spring Boot和Micrometer第2部分:添加InfluxDB

自从我们添加了基本应用程序以来&#xff0c;是时候启动InfluxDB实例了。 我们将按照之前的教程进行操作&#xff0c;并添加一个docker实例。 docker run –rm -p 8086&#xff1a;8086 –name influxdb-本地influxdb 是时候在我们的pom上添加微米InfluxDB依赖项了 < dep…

ci 地址去掉index.php,CI框架如何删除地址栏的 index.php

默认CI框架显示地址是http://localhost/ci/index.php/test/去PHP去掉index.php这样会更好些。1.修改Http.conf的LoadModule rewrite_module modules/mod_rewrite.so去掉注释2.ci根目录增加.htaccess文件RewriteEngine OnRewriteBase /ci#Removes access to the system folder b…

gradle的二进制版本_Gradle入门:创建二进制分发

gradle的二进制版本创建有用的应用程序后&#xff0c;很可能我们想与其他人共享它。 一种方法是创建一个可以从我们的网站下载的二进制发行版。 这篇博客文章描述了如何满足以下要求的二进制发行版&#xff1a; 我们的二进制分发不得使用所谓的“胖子”方法。 换句话说&#…

php auth和rbac区别,php中比rbac更好的权限认证的方式auth类认证

RBAC是按节点进行认证的&#xff0c;如果要控制比节点更细的权限就有点困难了&#xff0c;比如页面上面的操作按钮&#xff0c; 我想判断用户权限来显示这个按钮&#xff0c; 如果没有权限就不会显示这个按钮&#xff1b; 再比如我想按积分进行权限认证&#xff0c; 积分在0-10…

使用比较器的nulls对具有null值的列表进行排序

你好朋友&#xff0c; 在本教程中&#xff0c;我们将看到如何使用Java 8 Comparator.nullsFirst在列表中的项目很少为空时如何对项目列表进行排序&#xff0c;以便将null视为列表中的最小元素。 –什么是比较器 – nullsFirst方法在Comparator中做什么 –排序具有非空名称的…

php 获取文件给用户下载,php 下载文件/直接下载数据内容

思路步骤* 定义参数* 魔术方法* 执行下载* 获取设置属性函数* 获取设置文件mime 类型* 获取设置下载文件名* 设置header* 下载函数实现代码class DownFile{// 定义参数public $data; // 下载的数据或文件名public $is_confalse; // 是否是下载内容public $down_file_name; // 下…

Jar Hell变得轻松–用jHades揭开类路径的神秘面纱

Java开发人员将不得不面对的最困难的问题是类路径错误&#xff1a; ClassNotFoundException &#xff0c; NoClassDefFoundError &#xff0c;Jar Hell&#xff0c; Xerces Hell和公司。 在本文中&#xff0c;我们将探究这些问题的根本原因&#xff0c;并了解最小的工具&#…

韩顺平php教程笔记,PHP笔记,韩顺平php笔记_PHP教程

PHP笔记&#xff0c;韩顺平php笔记Mysql-----------------------------------------------------------------------------Mysql 改默认密码update mysql.user set PasswordPASSWORD(123456) WHERE UserrootFLUSH PRIVILEGES去了解下MYSQL的范式、反范式、混合范式还有索引的建…

php键盘输入函数,php的常用输入语句以及常用函数

这篇文章主要介绍了关于php的常用输入语句以及常用函数&#xff0c;有着一定的参考价值&#xff0c;现在分享给大家&#xff0c;有需要的朋友可以参考一下一、 echo语句echo做php的人在熟悉不过了&#xff0c;在php文件中我们用他来输出数据。<?php echo "hi mm"…

分度器中硒定位器的完整指南(示例)

在测试网站的功能时&#xff0c;特别是Web元素&#xff08;例如单选按钮&#xff0c;文本框&#xff0c;下拉列表等&#xff09;&#xff0c;您需要确保能够访问这些元素。 Selenium定位器正是出于这个目的&#xff0c;通过使用此命令&#xff0c;我们可以识别这些Web元素DOM&a…

ajax php 投票,PHP 实例 AJAX 投票

PHP 实例 - AJAX 投票AJAX 投票在下面的实例中&#xff0c;我们将演示一个投票程序&#xff0c;通过它&#xff0c;投票结果在网页不进行刷新的情况下被显示。你喜欢 PHP 和 AJAX 吗?是:否:实例解释 - HTML 页面当用户选择上面的某个选项时&#xff0c;会执行名为 "getVo…