7位数qq免费申请永久,关键词优化公司济南兴田德润团队怎么样,wordpress分类目录在,2023年楼市将迎来抛售潮我并没有真正为此计划#xff0c;但是在一个免费的会议月份中#xff0c;我有机会进行了一些深入的探讨#xff0c;并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的演示 。 她演示了Camel中Fi… 我并没有真正为此计划但是在一个免费的会议月份中我有机会进行了一些深入的探讨并向您展示了WildFly-Camel子系统提供的WildFly魔术上的更多Camel。 商业背景 该演示来自Christina Lin在JBoss Demo-Central上的演示 。 她演示了Camel中File和JDBC连接器的用法还添加了Spilled模式和Exception处理方法的用法。 该演示的场景是模拟银行帐户之间的交易过程。 输入是一个包含多个事务的批处理XML文件。 这些可以是现金存款现金提取或银行帐户的转账信息。 根据交易的类型它们会被散布起来并且每笔交易都会从数据库中检索相关信息进行交易并计算交易费用然后再将其放回数据库中。 您可以在GitHub上找到完整的原始源代码 。 我为什么触摸它 原因我实际上不想考虑新的业务案例。 而且不仅仅是在技术层面上向您展示一些细腻的细节。 因此我认为仅从克里斯蒂娜Christina那里获得成功就是一个捷径。 其次她正在基于Karaf并使用XML DSL进行路由定义的Fuse中做所有事情。 我只是一个可怜的Java人并且学会了讨厌XML。 另外她正在使用几个组件而我在Java EE上下文中不会使用。 先决条件–部署应用程序 在开始演示之前请确保已将WildFly 8.2.0.Final与WildFly-Camel子系统补丁2.2.0一起安装 。 现在可以将我的github帐户上的演示存储库派生到您选择的目录中。 它不过是带有一些其他依赖项的Maven Java EE 7项目。 只要做一个 mvn clean install 并将生成的target / javaee-bankdemo-1.0-SNAPSHOT.war部署到WildFly服务器。 此示例中没有任何UI因此您基本上必须观看日志文件并在其中复制xml文件。 src \ main \ in-data文件夹包含bank.xml您需要将其复制到standalone \ data \ inbox文件夹中。 第二步完成骆驼开始了。 客户状态 一切都始于标准的Java EE应用程序。 实体CustomerStatus保存帐户信息IDVipStatus余额。 它还具有一些NamedQueries。 看起来完全不是骆驼特有的。 WildFly用作默认数据库的内存中H2数据库在三个脚本的帮助下进行了预填充这三个脚本在persistance.xml中配置为架构生成属性。 我在这里与两个客户一起工作分别是A01和A02。 骆驼和Java EE 在这种情况下骆驼自举非常简单。 BankRouteBuilder具有ContextName“ cdi-context”批注它本身是应用程序范围内的启动bean其中包含小演示所需的所有路由。 随时重新阅读并了解其他可能的选项以部署/配置路由 。 hawt.io控制台http// localhost8080 / hawtio /很好地显示了它们。 该应用程序有五条路线。 ReadFile是第一个它基本上仅准备好xml文件并将各个条目 由xPath表达式拆分 推入processTransaction路由。 这个决定是“现金”交易还是“转移”交易。 分别以“ directdoTransfer ”或“ directprocessCash ” 结尾 。 我将所有原始xml路由定义留在BankRouteBilder中作为注释。 如果您搜索特定的解决方案可能会有所帮助。 保险丝演示的差异 Christina经常使用Camel JDBC组件 。 它完成了所有繁重的工作甚至完成了初始的数据库设置。 这是我们在任何地方都不想做的事情尤其是在Java EE环境中在该环境中我们可以使用所有JPA magic。 实际上有一个Camel JPA componente 但是它非常有限并且不真正支持NamedQueries或类似名称。 解决此问题的一种非常有效的方法是使用具有所有bean绑定的Camel Bean组件和已经集成的cdi组件。 所有数据库访问都通过CustomerStatusService进行管理。 基本上这是一个Named bean它注入了EntityManager并知道如何加载CustomerStatus实体。 只需在bean端点中引用它即可将其注入到RouteBuilder中 .to(bean:customerService?methodloadCustomer) 我同意幕后发生了很多魔术而CustomerStatusService依赖于Camel类这一事实是我不喜欢的另一件事。 但这可以通过将服务 Inject-注入路由并以类似方式引用来轻松解决。 我决定不这样做因为我想让Christina演示的最初流程保持活力。 她经常与交易所合作并依赖它们。 因此我更接近她的榜样。 关于交易的话 我实际上在此示例中使用扩展的持久性上下文并将服务中的updateCustomer方法标记为Transactional 。 这是一种将完整和更新的CustomerStatus实体合并回数据库的非常简单的方法。 整个doTransfer路由现在都不是事务性的。 即使第二个客户不在系统中该金额仍将从第一个客户帐户中提取。 我想在稍后的阶段和单独的博客文章中介绍。 现在就这样。 享受您的周末并与Camel和WildFly Camel子系统一起玩。 很高兴通过myfear或在博客文章中发表评论来接收您的想法或问题。 翻译自: https://www.javacodegeeks.com/2015/07/using-jpa-and-cdi-beans-with-camel-on-wildfly.html