在WildFly中将Apache Camel和Spring添加为jboss模块

这些天,我在玩Wildfly , Apache Camel和Spring 。

在EAR / WAR之间进行通信的一种简单方法是使用Camel的direct-vm组件。 有或没有骆驼,有很多方法可以实现这一目标。 骆驼在WildFly中就像一个饰物,不需要任何额外的配置。 骆驼很棒!!!

为了避免将Spring和Camel所需的所有JAR打包到我的应用程序中,我使用出色的JBoss Modules框架(WildFly已经使用过)创建了两个模块。 然后,我可以引用这两个框架,而无需将所有这些JAR打包到我的应用程序(EAR / WAR)中。

创建Spring模块

  • 转到WildFly主页目录: $> cd /home/torun/jboss/wildfly/wildfly-8.0.0.Beta1
  • 创建Spring模块目录结构:
    • $> mkdir -p modules / org / springframework / 3.2.5.RELEASE
  • 在这个新目录中,创建具有以下内容的module.xml文件:
<module xmlns="urn:jboss:module:1.3" name="org.springframework" slot="3.2.5.RELEASE"><resources><resource-root path="aopalliance-1.0.jar"/><resource-root path="aspectjrt-1.7.4.jar"/><resource-root path="aspectjtools-1.7.4.jar"/><resource-root path="aspectjweaver-1.7.4.jar"/><resource-root path="org.aspectj.matcher-1.7.4.jar"/><resource-root path="spring-aop-3.2.5.RELEASE.jar"/><resource-root path="spring-aspects-3.2.5.RELEASE.jar"/><resource-root path="spring-beans-3.2.5.RELEASE.jar"/><resource-root path="spring-context-3.2.5.RELEASE.jar"/><resource-root path="spring-context-support-3.2.5.RELEASE.jar"/><resource-root path="spring-core-3.2.5.RELEASE.jar"/><resource-root path="spring-expression-3.2.5.RELEASE.jar"/><resource-root path="spring-jdbc-3.2.5.RELEASE.jar"/><resource-root path="spring-orm-3.2.5.RELEASE.jar"/><resource-root path="spring-oxm-3.2.5.RELEASE.jar"/><resource-root path="spring-tx-3.2.5.RELEASE.jar"/><resource-root path="spring-web-3.2.5.RELEASE.jar"/><resource-root path="spring-webmvc-3.2.5.RELEASE.jar"/><resource-root path="spring-webmvc-portlet-3.2.5.RELEASE.jar"/></resources><dependencies><module name="javaee.api"/><module name="org.apache.commons.logging"/><module name="org.jboss.vfs"/><module name="org.hibernate"/><module name="javax.el.api" export="true"/><module name="com.sun.xml.bind" export="true"/></dependencies>
</module>
  • 然后在此新目录中添加所有提到为“ resource-root”的JAR。
  • 您已经完成了Spring模块!!!
  • 现在,您可以在EAR / WAR中使用“ jboss-deployment-structure.xml”中的下一行来引用spring模块:
    • <module name =” org.springframework” slot =“ 3.2.5.RELEASE” />

创建骆驼模块

  • 创建骆驼模块目录结构:
    • $> mkdir -p modules / org / apache / camel / 2.12.1
  • 在这个新目录中,创建具有以下内容的module.xml文件:
<module xmlns="urn:jboss:module:1.3" name="org.apache.camel" slot="2.12.1"><resources><resource-root path="camel-core-2.12.1.jar"/><resource-root path="camel-spring-2.12.1.jar"/><resource-root path="jaxb-impl-2.2.6.jar"/></resources><dependencies><module name="org.springframework" slot="3.2.5.RELEASE" /><module name="org.slf4j"/><module name="javax.xml.bind.api"/><module name="javax.api"/><module name="sun.jdk" /></dependencies>
</module>
  • 然后在此新目录中添加所有提到为“ resource-root”的JAR。
  • 您已与骆驼模块一起完成 !!!
  • 现在,您可以在EAR / WAR中使用“ jboss-deployment-structure.xml”中的下一行来引用骆驼模块:
    • <module name =” org.apache.camel” slot =” 2.12.1” />

您可以从Spring或Camel模块中删除一些jar依赖项,但是这些只是我当前的设置,我知道它可以工作!

还有一个更重要的注意事项。 在尝试为这些模块找到正确的JAR时,我遇到了一些例外情况……因此,如果您忘记了任何JAR,则可能会看到以下任何例外情况:

Caused by: java.lang.NoClassDefFoundError: sun/misc/Unsafeat org.apache.camel.com.googlecode.concurrentlinkedhashmap.ConcurrentHashMapV8.getUnsafe(ConcurrentHashMapV8.java:4136) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.com.googlecode.concurrentlinkedhashmap.ConcurrentHashMapV8.<clinit>(ConcurrentHashMapV8.java:4101) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.<init>(ConcurrentLinkedHashMap.java:221) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap.<init>(ConcurrentLinkedHashMap.java:104) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap$Builder.build(ConcurrentLinkedHashMap.java:1634) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.util.LRUCache.<init>(LRUCache.java:83) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.util.LRUSoftCache.<init>(LRUSoftCache.java:68) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.impl.EndpointRegistry.<init>(EndpointRegistry.java:39) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.impl.DefaultCamelContext.<init>(DefaultCamelContext.java:234) [camel-core-2.12.1.jar:2.12.1]at org.apache.camel.spring.SpringCamelContext.<init>(SpringCamelContext.java:67) [camel-spring-2.12.1.jar:2.12.1]at org.apache.camel.spring.CamelContextFactoryBean.newCamelContext(CamelContextFactoryBean.java:356) [camel-spring-2.12.1.jar:2.12.1]at org.apache.camel.spring.CamelContextFactoryBean.createContext(CamelContextFactoryBean.java:350) [camel-spring-2.12.1.jar:2.12.1]at org.apache.camel.spring.CamelContextFactoryBean.getContext(CamelContextFactoryBean.java:361) [camel-spring-2.12.1.jar:2.12.1]at org.apache.camel.spring.CamelContextFactoryBean.getContext(CamelContextFactoryBean.java:80) [camel-spring-2.12.1.jar:2.12.1]at org.apache.camel.core.xml.AbstractCamelContextFactoryBean.getContext(AbstractCamelContextFactoryBean.java:518) [camel-spring-2.12.1.jar:2.12.1]at org.apache.camel.core.xml.AbstractCamelContextFactoryBean.afterPropertiesSet(AbstractCamelContextFactoryBean.java:160) [camel-spring-2.12.1.jar:2.12.1]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1571) [spring-beans-3.2.5.RELEASE.jar:3.2.5.RELEASE]at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509) [spring-beans-3.2.5.RELEASE.jar:3.2.5.RELEASE]... 23 more
Caused by: java.lang.ClassNotFoundException: sun.misc.Unsafe from [Module "org.apache.camel:2.12.1" from local module loader @1a6e5d5 (finder: local module finder @3b3402 (roots: /home/torun/jboss/wildfly/wildfly-8.0.0.Beta1/modules,/home/torun/jboss/wildfly/wildfly-8.0.0.Beta1/modules/system/layers/base))]at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final]...

要么

Caused by: java.lang.NoClassDefFoundError: org/w3c/dom/Nodeat java.lang.Class.getDeclaredConstructors0(Native Method) [rt.jar:1.7.0_40]at java.lang.Class.privateGetDeclaredConstructors(Class.java:2483) [rt.jar:1.7.0_40]at java.lang.Class.getConstructor0(Class.java:2793) [rt.jar:1.7.0_40]at java.lang.Class.getDeclaredConstructor(Class.java:2043) [rt.jar:1.7.0_40]at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:105)at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:129)... 29 more
Caused by: java.lang.ClassNotFoundException: org.w3c.dom.Node from [Module "org.apache.camel:2.12.1" from local module loader @1a6e5d5 (finder: local module finder @3b3402 (roots: /home/torun/jboss/wildfly/wildfly-8.0.0.Beta1/modules,/home/torun/jboss/wildfly/wildfly-8.0.0.Beta1/modules/system/layers/base))]at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final]...

要么

Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBExceptionat java.lang.Class.getDeclaredConstructors0(Native Method) [rt.jar:1.7.0_40]at java.lang.Class.privateGetDeclaredConstructors(Class.java:2483) [rt.jar:1.7.0_40]at java.lang.Class.getConstructor0(Class.java:2793) [rt.jar:1.7.0_40]at java.lang.Class.getDeclaredConstructor(Class.java:2043) [rt.jar:1.7.0_40]at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:105)at org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:129)... 29 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException from [Module "org.apache.camel:2.12.1" from local module loader @1a6e5d5 (finder: local module finder @3b3402 (roots: /home/torun/jboss/wildfly/wildfly-8.0.0.Beta1/modules,/home/torun/jboss/wildfly/wildfly-8.0.0.Beta1/modules/system/layers/base))]at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:197) [jboss-modules.jar:1.3.0.Final]...

希望能帮助到你!

参考: Java,Integration和源博客的优点,来自我们的JCG合作伙伴 Adrianos Dadis,在WildFly中将Apache Camel和Spring添加为jboss模块 。

翻译自: https://www.javacodegeeks.com/2013/11/add-apache-camel-and-spring-as-jboss-modules-in-wildfly.html

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

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

相关文章

页面体验提升小技巧—渐进式图片

前端性能方面有许多可优化的点&#xff0c;而这些优化带来的就是用户体验的提升。今天我们要聊的东西并不能给性能带来提升&#xff0c;但却能在一定程度上提升用户的体验。 参考博客 场景&#xff1a;在访问页面的时候如果图片较大或者网速慢的情况我们会看到图片加载起来是有…

php mysql无限分类排序_PHP 无限级分类、排序

lyk625358header(content-type:text/html;charsetutf-8);echo "";//-无限级排序,自己优化改良的,清除上次调用此函数后留下的静态变量的值$arr array(array(id>2,cname>分类2,parent_id>1),array(id>9,cname>分类9,parent_id>8),array(id>1,cn…

Java方法中的参数太多,第5部分:方法命名

在上一篇文章 &#xff08;有关处理Java方法中过多参数的系列文章的 第4部分 &#xff09;中&#xff0c;我将方法重载视为一种向客户提供需要较少参数的方法版本或构造函数的方法。 我描述了该方法的一些缺点&#xff0c;并建议从方法重载中摆脱出来以使用不同名称的方法至少可…

微信小程序搭配小白接口,自己没有服务器也能开发哦

这里将重点介绍&#xff0c;在自己没有服务器的情况下&#xff0c;如何在微信小程序里直接调用小白接口。 前提 假设你已经开通微信小程序&#xff0c;如果还没有&#xff0c;可前往微信公众平台开通&#xff1a;https://mp.weixin.qq.com 假设你已经开通小白接口&#xff0c…

LeetCode:34. 在排序数组中查找元素的第一个和最后一个位置

1、题目描述 给定一个按照升序排列的整数数组 nums&#xff0c;和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是 O(log n) 级别。 如果数组中不存在目标值&#xff0c;返回 [-1, -1]。 示例 1: 输入: nums [5,7,7,8,8,10], targ…

怎么将自己做好的网站发布到互联网上呢?

如何将自己的网站上传到网站空间。 1.需要有一个上传网站的软件&#xff0c;在这里推荐大家使用 FTP全称是flashfxp这个软件&#xff0c;这个功能功能齐全而且操作简单。大家可以先去下载一下这个软 件 2. 打开FTP&#xff0c;界面如下 3.我们要点击链接按钮&#xff0c;然后FT…

vue动态生成下拉框_vue+elementui 动态创建下拉框

v-for"(domain, index) in dynamicValidateForm.domains":label"‘站点‘ index":key"domain.id">v-for"item in testData":key"item.id":label"item.testName":value"item.id":disabled"item…

[贝聊科技]网页端「应用跳转」技术实现演变

本文作者&#xff1a;Mr.Luo &#xff0c;贝聊前端经理。本文同时发布于作者 个人博客 。 由于网页传播的便捷性&#xff0c;从网页向APP导流几乎是所有APP厂商都会采用的推广手段&#xff0c;具体来说就是在网页上提供一些触发点&#xff08;例如按钮、链接&#xff09;&#…

常见Java错误的十大列表(前100名!)

前10名名单非常受欢迎&#xff0c;有趣且内容丰富。 但是有很多&#xff01; 如何选择合适的&#xff1f; 这是一个元前10名列表&#xff0c;可帮助您找到前10名的前10名列表。 在更令人讨厌的笔记上&#xff1a; SELECT TOP 10 mistake FROM source1 UNION ALL SELECT TOP 10…

Ubuntu 16.04 下octave的使用入门

SciLab和octave是开源的且免费的矩阵计算工具&#xff0c;二者都有希望成为矩阵计算的新宠。相比之下&#xff0c; octave与MatLab的兼容性更高。octave遵循GPL协议&#xff08;GNU General Public License&#xff09;&#xff0c;用户可以单独发行octave或者包含在其产品中发…

hydra mysql 爆破_Hydra(爆破神器)使用方法

文本框 textarea 动态显示行数(简单文本编辑器)工作需求做一个文本编辑器简单的. 右边输入文字,左边会显示相应的代码行.清空也会变为1. 废话不多说上代码,自己理解. python中set使用In [2]: a set() # 常用操作1 In [3]: a Out[3]: set() In [4]: type(a) Out[4]: set In [5]…

消除switch语句以获得更好的代码结构

消除switch语句以获得更好的代码结构 代码演化1&#xff1a;纯switch function counter(state 0, action) {switch (action.type) {case INCREMENT:return state 1case DECREMENT:return state - 1default:return state} }用三元运算符代替 const counter (state 0, ac…

HTTP请求中POST与GET的区别

一、原理区别 一般我们在浏览器输入一个网址访问网站都是GET请求;在FORM表单中&#xff0c;可以通过设置Method指定提交方式为GET或者POST提交方式&#xff0c;默认为GET提交方式。 HTTP定义了与服务器交互的不同方法&#xff0c;其中最基本的几种&#xff1a;GET&#xff0c;P…

Linux服务器配置---安装vsftpd

安装vsftpd 大多数Linux系统都使用vsftpd&#xff0c;因此这里我们也安装vsftpd 1、安装vsftpd [rootlocalhost phpMyAdmin]# yum install -y vsftpd Loaded plugins: fastestmirror, refresh-packagekit, security Installed: vsftpd.i686 0:2.2.2-11.el6_4.1 …

Java方法中的参数太多,第1部分:自定义类型

我认为构造函数和方法中冗长的参数列表是Java开发中的另一个“ 危险信号 ”&#xff0c;就逻辑和功能而言&#xff0c;它们不一定是“错误的”&#xff0c;但通常暗示当前或将来出现错误的可能性很高。 在一小部分帖子中&#xff0c;我介绍了一些可用于减少方法或构造函数的参数…

mysql怎么制作柱状图_从数据库中取出最近三十天的数据并生成柱状图

在终端用cd 命令进入文件目录说明&#xff1a;此处例子我是拿项目中的一个例子讲解的。1、新建一个项目 &#xff1a;用终端输入&#xff1a;zf create project Airline 格式&#xff1a;zf create action project project-name 备注&#xff1a;这些格式可以在终端输入zf 查看…

关于ES6的Promise

JavaScript的异步处理 提到JavaScript的异步处理&#xff0c;也许很多人和我一样想到利用回调函数。 例如&#xff1a; firstAsync(function(data){//处理得到的 data 数据//....secondAsync(function(data2){//处理得到的 data2 数据//....thirdAsync(function(data3){//处…

为hexo博客添加基于gitment评论功能

关于gitment gitment其实就是利用你的代码仓库的Issues&#xff0c;来实现评论。每一篇文章对应该代码仓库中的 一个Issues,Issues中的评论对应你的博客每篇文章中的评论。如果你是用github的博客的话 用起来将会十分的方便。 注册github应用 首先需要在这注册一个OAuth Applic…

[转]我是如何走进黑客世界的?

*本文原创作者&#xff1a;MyselfExplorer&#xff1b;翻译编辑&#xff1a;楼兰&#xff0c;本文属FreeBuf原创奖励计划&#xff0c;未经许可禁止转载 我想给你一把打开这扇门的钥匙&#xff0c;而你要做的便是静静的聆听接下来的故事。挖掘 0day 一般需要掌握fuzzing&#xf…

使用Servlet 3.0,Redis / Jedis和CDI的简单CRUD –第1部分

在这篇文章中&#xff0c;我们将构建一个简单的用户界面。 数据将存储在Redis中。 为了与Redis交互&#xff0c;我们将使用Jedis库。 CDI用于Depedency Injection&#xff0c;而Servlet 3.0用于视图。 让我们从Redis / Jedis部分开始。 您可以在这些 帖子中找到有关Redis和Jed…