jboss eap_带有自定义模块的JBoss EAP上的骆驼

jboss eap

Apache Camel —最好的开源集成库

Apache Camel是一个很棒的开放源代码集成库,可以用作ESB的主干或在独立的应用程序中进行系统的路由,转换或中介(请参阅:集成多个系统)。 Camel非常通用,不会迫使用户部署到任何特定的容器或JVM技术中。 部署到OSGi中以实现灵活的模块化,使用Java EE堆栈时部署到Java EE ,或者如果要进行轻量级微服务样式部署,则部署到Plain Jane Java Main中。


apache-camel-logo

在EAP上运行骆驼

我最近有几个人问有关在JBoss企业应用程序平台上运行Camel的问题,我通常可以说:“ 很好地看一下有人为做到这一点而编写的这个很棒的博客 。”

但是,对于一些大型公司的人来说,他们更喜欢管理第三方库的使用并且更喜欢将它们放入可全局访问的类路径中,因此,将骆驼库打包到其WAR / EAR中是不可行的。

以下是您可能希望将EAP上的Camel打包为全局库的一些原因:

  • 金色图像,策展清单
  • 减少war肿的战争部署
  • 可以在单个源位置修补/更新库
  • 确保所有应用程序都使用批准的版本

为什么您可能不想这样做:

  • Java EE容器旨在成为多租户
  • 部署选项/版本不灵活
  • 可能的类路径问题/冲突取决于第三方库和传递依赖项
  • 使Java EE容器的管理复杂化

EAP模块

不管采用哪种pro / con方法,将Camel作为模块打包到JBoss EAP上以便从全局类路径使用它的最佳方法是什么? 答案是使用JBoss EAP的本机模块化系统,恰当地称为“ 模块” 。 我们可以为EAP 创建自定义模块 ,并启用我们的瘦身战争 。

一步步

对于此博客,我将使用先前创建的Camel示例作为简单的WAR项目进行部署 。 但是,我们不会将所有骆驼罐都包含为<scope>compile</scope>而是将范围更改为提供:

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

只是刷新一下, maven范围选项可帮助您精细控制依赖项的打包方式以及如何将其呈现给类路径:

  • compile —默认范围,用于编译项目,并作为package阶段的一部分打包到类路径中
  • 提供—依赖关系是编译时必需的,但未打包在内置package阶段生成的工件中
  • 运行时—依赖项在运行时必须位于类路径上,但编译时不需要,也未打包

还有其他一些,但是您不妨查看一下文档以全面了解。

因此,现在我们将范围更改为提供的范围,如果进行构建,我们应该能够检查WAR并验证是否没有骆驼罐:

从$ SOURCE_ROOT构建项目

ceposta@postamachat$ mvn clean install
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.324s
[INFO] Finished at: Wed Jul 16 14:16:53 MST 2014
[INFO] Final Memory: 29M/310M
[INFO] ------------------------------------------------------------------------

列出WAR的内容

ceposta@postamachat$ unzip -l target/camel-cxf-contract-first-1.0.0-SNAPSHOT.war
Archive:  target/camel-cxf-contract-first-1.0.0-SNAPSHOT.warLength     Date   Time    Name--------    ----   ----    ----0  07-16-14 14:15   META-INF/132  07-16-14 14:15   META-INF/MANIFEST.MF0  07-16-14 14:15   WEB-INF/0  07-16-14 14:15   WEB-INF/classes/0  07-16-14 14:15   WEB-INF/classes/camelinaction/0  07-16-14 14:15   WEB-INF/classes/camelinaction/order/0  07-16-14 14:15   WEB-INF/classes/META-INF/0  07-16-14 14:15   WEB-INF/classes/META-INF/spring/0  07-16-14 14:15   WEB-INF/classes/wsdl/1927  07-16-14 14:15   WEB-INF/classes/camelinaction/order/ObjectFactory.class992  07-16-14 14:15   WEB-INF/classes/camelinaction/order/OrderEndpoint.class1723  07-16-14 14:15   WEB-INF/classes/camelinaction/order/OrderEndpointImpl.class2912  07-16-14 14:15   WEB-INF/classes/camelinaction/order/OrderEndpointService.class604  07-16-14 14:15   WEB-INF/classes/log4j.properties1482  07-16-14 14:15   WEB-INF/classes/META-INF/spring/camel-cxf.xml1935  07-16-14 14:15   WEB-INF/classes/META-INF/spring/camel-route.xml3003  07-16-14 14:15   WEB-INF/classes/wsdl/order.wsdl1193  05-23-14 04:22   WEB-INF/web.xml0  07-16-14 14:15   META-INF/maven/0  07-16-14 14:15   META-INF/maven/com.redhat.demos/0  07-16-14 14:15   META-INF/maven/com.redhat.demos/camel-cxf-contract-first/8070  07-16-14 14:03   META-INF/maven/com.redhat.demos/camel-cxf-contract-first/pom.xml134  07-16-14 14:15   META-INF/maven/com.redhat.demos/camel-cxf-contract-first/pom.properties--------                   -------24107                   23 files

如果我们尝试将此项目部署到EAP,则肯定会遇到类路径问题,因为EAP中的类路径默认不包含Camel。 因此,让我们自己构建模块。

首先,通过从Red Hat支持门户网站下载来访问EAP。 (请注意,这些步骤可能在Wildfly中有效,但是在此讨论中我将使用EAP)。

注意:在本示例中,我将使用JBoss EAP 6.2 ,以及来自JBoss Fuse 6.1的Apache Camel的Red Hat发行版。

对于您要为其创建自定义模块的pom中的每个依赖项,您都必须重复这些步骤(请注意,这些步骤已在Red Hat支持门户网站的EAP知识库中正式化 ):

在$ EAP_HOME / modules下创建一个文件夹来存储新模块

ceposta@postamachat(jboss-eap-6.2) $ cd modules
ceposta@postamachat(modules) $ mkdir -p org/apache/camel/core

在module文件夹下创建一个名为

ceposta@postamachat(modules) $ mkdir  org/apache/camel/core/main

现在,我们需要找出哪些依赖项/ jar需要进入此模块。 如果您使用Maven的Dependency Plugin,则应该会大有帮助。

注意:这些步骤是一次性的工作,但是,使用perl / python / bash脚本自动执行这些步骤可能值得一点时间。 对于此演示,我没有创建脚本,但是如果您愿意,我希望您与所有人共享该脚本,或者在twitter @christianposta上让我知道,或者在与此博客相关的github项目上进行拉取请求 ..谢谢!

显示项目和每个工件的依赖关系:

ceposta@postamachat$ mvn dependency:tree[INFO] ------------------------------------------------------------------------
[INFO] Building [TODO]Camel CXF Contract First Example 1.0.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ camel-cxf-contract-first ---
[INFO] com.redhat.demos:camel-cxf-contract-first:war:1.0.0-SNAPSHOT
[INFO] +- org.apache.camel:camel-core:jar:2.12.0.redhat-610379:provided
[INFO] |  \- com.sun.xml.bind:jaxb-impl:jar:2.2.6:provided
[INFO] +- org.apache.camel:camel-cxf:jar:2.12.0.redhat-610379:provided
[INFO] |  +- org.apache.camel:camel-spring:jar:2.12.0.redhat-610379:provided
[INFO] |  |  \- org.springframework:spring-tx:jar:3.2.8.RELEASE:provided
[INFO] |  +- org.apache.camel:camel-cxf-transport:jar:2.12.0.redhat-610379:provided
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxrs:jar:2.7.0.redhat-610379:provided
[INFO] |  |  +- javax.ws.rs:javax.ws.rs-api:jar:2.0-m10:provided
[INFO] |  |  \- org.apache.cxf:cxf-rt-bindings-xml:jar:2.7.0.redhat-610379:provided
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.7.0.redhat-610379:provided
[INFO] |  |  +- xml-resolver:xml-resolver:jar:1.2:provided
[INFO] |  |  +- asm:asm:jar:3.3.1:provided
[INFO] |  |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.7.0.redhat-610379:provided
[INFO] |  |  \- org.apache.cxf:cxf-rt-ws-addr:jar:2.7.0.redhat-610379:provided
[INFO] |  |     \- org.apache.cxf:cxf-rt-ws-policy:jar:2.7.0.redhat-610379:provided
[INFO] |  |        \- org.apache.neethi:neethi:jar:3.0.3:provided
[INFO] |  +- org.springframework:spring-core:jar:3.2.8.RELEASE:provided
[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.3:provided
[INFO] |  +- org.springframework:spring-beans:jar:3.2.8.RELEASE:provided
[INFO] |  +- org.springframework:spring-context:jar:3.2.8.RELEASE:provided
[INFO] |  |  \- org.springframework:spring-expression:jar:3.2.8.RELEASE:provided
[INFO] |  +- org.apache.cxf:cxf-rt-features-clustering:jar:2.7.0.redhat-610379:provided
[INFO] |  \- org.apache.cxf:cxf-rt-bindings-soap:jar:2.7.0.redhat-610379:provided
[INFO] |     \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.7.0.redhat-610379:provided
[INFO] +- log4j:log4j:jar:1.2.16:provided
[INFO] +- org.slf4j:slf4j-api:jar:1.6.6:provided
[INFO] +- org.slf4j:slf4j-log4j12:jar:1.6.6:provided
[INFO] +- org.apache.cxf:cxf-rt-transports-http-jetty:jar:2.7.0.redhat-610379:provided
[INFO] |  +- org.apache.cxf:cxf-api:jar:2.7.0.redhat-610379:provided
[INFO] |  |  +- org.codehaus.woodstox:woodstox-core-asl:jar:4.2.0:provided
[INFO] |  |  |  \- org.codehaus.woodstox:stax2-api:jar:3.1.1:provided
[INFO] |  |  +- org.apache.ws.xmlschema:xmlschema-core:jar:2.1.0:provided
[INFO] |  |  +- org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.7.1:provided
[INFO] |  |  +- wsdl4j:wsdl4j:jar:1.6.3:provided
[INFO] |  |  \- org.osgi:org.osgi.compendium:jar:4.2.0:provided
[INFO] |  +- org.apache.cxf:cxf-rt-transports-http:jar:2.7.0.redhat-610379:provided
[INFO] |  +- org.apache.cxf:cxf-rt-core:jar:2.7.0.redhat-610379:provided
[INFO] |  +- org.eclipse.jetty:jetty-server:jar:8.1.14.v20131031:provided
[INFO] |  |  +- org.eclipse.jetty:jetty-continuation:jar:8.1.14.v20131031:provided
[INFO] |  |  \- org.eclipse.jetty:jetty-http:jar:8.1.14.v20131031:provided
[INFO] |  |     \- org.eclipse.jetty:jetty-io:jar:8.1.14.v20131031:provided
[INFO] |  |        \- org.eclipse.jetty:jetty-util:jar:8.1.14.v20131031:provided
[INFO] |  +- org.eclipse.jetty:jetty-security:jar:8.1.14.v20131031:provided
[INFO] |  \- org.apache.geronimo.specs:geronimo-servlet_3.0_spec:jar:1.0:provided
[INFO] +- org.apache.camel:camel-test-spring:jar:2.12.0.redhat-610379:provided
[INFO] |  +- org.apache.camel:camel-test:jar:2.12.0.redhat-610379:provided
[INFO] |  \- org.springframework:spring-test:jar:3.2.8.RELEASE:provided
[INFO] +- junit:junit:jar:4.11:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] \- org.springframework:spring-web:jar:3.2.5.RELEASE:provided
[INFO]    +- aopalliance:aopalliance:jar:1.0:provided
[INFO]    \- org.springframework:spring-aop:jar:3.2.5.RELEASE:provided
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.450s
[INFO] Finished at: Wed Jul 16 15:03:08 MST 2014
[INFO] Final Memory: 17M/310M
[INFO] ------------------------------------------------------------------------

这为您提供了项目的依赖项以及每个顶级和传递性依赖项的完整列表。 现在,您知道每个模块应放入哪些jar。

下一步是下载所有这些jar,以便轻松将它们复制到module文件夹:

将所有项目依赖项复制到目标/依赖项

ceposta@postamachat$ mvn dependency:copy-dependencies ceposta@postamachat$ ls -l target/dependencytotal 32072
-rw-r--r--  1 ceposta  staff     4467 Jul 16 14:50 aopalliance-1.0.jar
-rw-r--r--  1 ceposta  staff    43581 Jul 16 14:50 asm-3.3.1.jar
-rw-r--r--  1 ceposta  staff  2592519 Jul 16 14:50 camel-core-2.12.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   207482 Jul 16 14:43 camel-cxf-2.12.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    64726 Jul 16 14:50 camel-cxf-transport-2.12.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   244731 Jul 16 14:50 camel-spring-2.12.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    43947 Jul 16 14:50 camel-test-2.12.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    71455 Jul 16 14:50 camel-test-spring-2.12.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    62050 Jul 16 14:50 commons-logging-1.1.3.jar
-rw-r--r--  1 ceposta  staff  1115924 Jul 16 14:50 cxf-api-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   204287 Jul 16 14:50 cxf-rt-bindings-soap-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    38847 Jul 16 14:50 cxf-rt-bindings-xml-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   408403 Jul 16 14:50 cxf-rt-core-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   129306 Jul 16 14:50 cxf-rt-databinding-jaxb-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    34276 Jul 16 14:50 cxf-rt-features-clustering-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   654099 Jul 16 14:50 cxf-rt-frontend-jaxrs-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   388669 Jul 16 14:50 cxf-rt-frontend-jaxws-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    67426 Jul 16 14:50 cxf-rt-frontend-simple-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   260274 Jul 16 14:50 cxf-rt-transports-http-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    97071 Jul 16 14:50 cxf-rt-transports-http-jetty-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff    80014 Jul 16 14:50 cxf-rt-ws-addr-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   207480 Jul 16 14:50 cxf-rt-ws-policy-2.7.0.redhat-610379.jar
-rw-r--r--  1 ceposta  staff   223298 Jul 16 14:50 geronimo-javamail_1.4_spec-1.7.1.jar
-rw-r--r--  1 ceposta  staff    96323 Jul 16 14:50 geronimo-servlet_3.0_spec-1.0.jar
-rw-r--r--  1 ceposta  staff    45024 Jul 16 14:50 hamcrest-core-1.3.jar
-rw-r--r--  1 ceposta  staff   110928 Jul 16 14:50 javax.ws.rs-api-2.0-m10.jar
-rw-r--r--  1 ceposta  staff  1112659 Jul 16 14:50 jaxb-impl-2.2.6.jar
-rw-r--r--  1 ceposta  staff    21162 Jul 16 14:50 jetty-continuation-8.1.14.v20131031.jar
-rw-r--r--  1 ceposta  staff    96122 Jul 16 14:50 jetty-http-8.1.14.v20131031.jar
-rw-r--r--  1 ceposta  staff   104219 Jul 16 14:50 jetty-io-8.1.14.v20131031.jar
-rw-r--r--  1 ceposta  staff    89923 Jul 16 14:50 jetty-security-8.1.14.v20131031.jar
-rw-r--r--  1 ceposta  staff   357704 Jul 16 14:50 jetty-server-8.1.14.v20131031.jar
-rw-r--r--  1 ceposta  staff   287680 Jul 16 14:50 jetty-util-8.1.14.v20131031.jar
-rw-r--r--  1 ceposta  staff   245039 Jul 16 14:50 junit-4.11.jar
-rw-r--r--  1 ceposta  staff   481535 Jul 16 14:50 log4j-1.2.16.jar
-rw-r--r--  1 ceposta  staff    71487 Jul 16 14:50 neethi-3.0.3.jar
-rw-r--r--  1 ceposta  staff   614152 Jul 16 14:50 org.osgi.compendium-4.2.0.jar
-rw-r--r--  1 ceposta  staff    26176 Jul 16 14:50 slf4j-api-1.6.6.jar
-rw-r--r--  1 ceposta  staff     9711 Jul 16 14:50 slf4j-log4j12-1.6.6.jar
-rw-r--r--  1 ceposta  staff   335679 Jul 16 14:50 spring-aop-3.2.5.RELEASE.jar
-rw-r--r--  1 ceposta  staff   612569 Jul 16 14:50 spring-beans-3.2.8.RELEASE.jar
-rw-r--r--  1 ceposta  staff   866273 Jul 16 14:50 spring-context-3.2.8.RELEASE.jar
-rw-r--r--  1 ceposta  staff   873608 Jul 16 14:50 spring-core-3.2.8.RELEASE.jar
-rw-r--r--  1 ceposta  staff   196367 Jul 16 14:50 spring-expression-3.2.8.RELEASE.jar
-rw-r--r--  1 ceposta  staff   457987 Jul 16 14:50 spring-test-3.2.8.RELEASE.jar
-rw-r--r--  1 ceposta  staff   242436 Jul 16 14:50 spring-tx-3.2.8.RELEASE.jar
-rw-r--r--  1 ceposta  staff   627339 Jul 16 14:50 spring-web-3.2.5.RELEASE.jar
-rw-r--r--  1 ceposta  staff   182112 Jul 16 14:50 stax2-api-3.1.1.jar
-rw-r--r--  1 ceposta  staff   482245 Jul 16 14:50 woodstox-core-asl-4.2.0.jar
-rw-r--r--  1 ceposta  staff   186758 Jul 16 14:50 wsdl4j-1.6.3.jar
-rw-r--r--  1 ceposta  staff    84091 Jul 16 14:50 xml-resolver-1.2.jar
-rw-r--r--  1 ceposta  staff   165787 Jul 16 14:50 xmlschema-core-2.1.0.jar

现在,我们找到哪些jar依赖于什么并创建模块。 例如,从上面可以看到camel-corecom.sun.xml.bind:jaxb-impl:jar:2.2.6具有依赖性。幸运的是,这是唯一的依赖性,它是JBoss EAP已经提供的系统依赖性。

因此,我们需要复制到我们的JBoss Module目录中的是org.apache.camel:camel-core:jar:2.12.0.redhat-610379依赖项。 但是我们从哪里得到的呢? 好吧,因为我们使用了dependency:copy-dependencies,所以它应该只在您的target / dependency文件夹中。

但是官方的答案是Red Hat的骆驼罐是JBoss Fuse的一部分。

因此,如果下载JBoss Fuse发行版并解压缩,则应该在该发行版中看到一个/extras文件夹。 在该发行版内部有一个名为apache-camel-2.12.0.redhat-610379.zip的存档文件。 如果解压缩此归档文件并检查/lib文件夹,则将拥有Red Hat支持的所有Camel组件和jar。

既然我们知道camel-core是骆驼核心模块唯一需要的jar,让我们将其复制到EAP上的模块文件夹中:

将所有依赖项和传递性依赖项复制到模块文件夹中

ceposta@postamachat(contract-first-camel-eap) $ cp target/dependency/camel-core-2.12.0.redhat-610379.jar $EAP_HOME/modules/org/apache/camel/core/main/

创建module.xml

现在,我们需要添加一个简单的xml描述符,以使EAP知道这是一个有效的模块:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.apache.camel.core"><resources><resource-root path="camel-core-2.12.0.redhat-610379.jar"/></resources>
</module>

现在,您有了camel-core EAP模块! 如果您对其他模块有依赖性,则可以像这样添加它们,但对于骆驼核心模块不是必需的(这只是其他需要此模块的示例的一个示例):

<dependencies><module name="org.apache.commons.lang"/><module name="org.apache.commons.logging" /><module name="org.apache.commons.collections" /><module name="org.apache.commons.io" /><module name="org.apache.commons.configuration" />
</dependencies>

启用骆驼核心模块:

最后要做的是在全局类路径中启用该模块。 为此,找到独立的配置文件并将其添加到“ EE子系统”的<global-modules>部分:

.... bunch of other stuff here....<subsystem xmlns="urn:jboss:domain:ee:1.1"><global-modules><module name="org.apache.camel.core" slot="main" /></global-modules>
</subsystem>.... bunch of other stuff here....

现在对camel-cxf组件执行此操作(提示,这些就是jar)。或者如果已经有一些自定义模块,并且您想进一步将其拆分为可重用的模块,则按技术(spring,cxf,cxf)进行拆分-运输等):

[INFO] +- org.apache.camel:camel-cxf:jar:2.12.0.redhat-610379:provided
[INFO] |  +- org.apache.camel:camel-spring:jar:2.12.0.redhat-610379:provided
[INFO] |  |  \- org.springframework:spring-tx:jar:3.2.8.RELEASE:provided
[INFO] |  +- org.apache.camel:camel-cxf-transport:jar:2.12.0.redhat-610379:provided
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxrs:jar:2.7.0.redhat-610379:provided
[INFO] |  |  +- javax.ws.rs:javax.ws.rs-api:jar:2.0-m10:provided
[INFO] |  |  \- org.apache.cxf:cxf-rt-bindings-xml:jar:2.7.0.redhat-610379:provided
[INFO] |  +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:2.7.0.redhat-610379:provided
[INFO] |  |  +- xml-resolver:xml-resolver:jar:1.2:provided
[INFO] |  |  +- asm:asm:jar:3.3.1:provided
[INFO] |  |  +- org.apache.cxf:cxf-rt-frontend-simple:jar:2.7.0.redhat-610379:provided
[INFO] |  |  \- org.apache.cxf:cxf-rt-ws-addr:jar:2.7.0.redhat-610379:provided
[INFO] |  |     \- org.apache.cxf:cxf-rt-ws-policy:jar:2.7.0.redhat-610379:provided
[INFO] |  |        \- org.apache.neethi:neethi:jar:3.0.3:provided
[INFO] |  +- org.springframework:spring-core:jar:3.2.8.RELEASE:provided
[INFO] |  |  \- commons-logging:commons-logging:jar:1.1.3:provided
[INFO] |  +- org.springframework:spring-beans:jar:3.2.8.RELEASE:provided
[INFO] |  +- org.springframework:spring-context:jar:3.2.8.RELEASE:provided
[INFO] |  |  \- org.springframework:spring-expression:jar:3.2.8.RELEASE:provided
[INFO] |  +- org.apache.cxf:cxf-rt-features-clustering:jar:2.7.0.redhat-610379:provided
[INFO] |  \- org.apache.cxf:cxf-rt-bindings-soap:jar:2.7.0.redhat-610379:provided
[INFO] |     \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:2.7.0.redhat-610379:provided

请注意,您可能需要在这里将不同的第三方依存关系拆分为各自的模块。 (例如,Spring Framework,Camel Spring等)

将我们的项目部署到EAP:

现在,从命令行转到示例项目的源代码的根,并进行构建和部署:

ceposta@postamachat$ mvn clean installceposta@postamachat$ mvn jboss-as:deploy-only

接下来要去哪里?

如果您对以上内容有疑问,我们很乐意为您提供帮助,或者与Red Hat支持联系以更快地做出响应!

翻译自: https://www.javacodegeeks.com/2014/07/camel-on-jboss-eap-with-custom-modules.html

jboss eap

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

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

相关文章

ubuntu下安装openMPI

首先访问openmpi官网:Openmpi 然后选择Download&#xff0c;进入资源下载页面。选择最新版本的openmpi 如何获得下载链接呢&#xff1f;将鼠标放在openmpi-4.0.5.tar.gz 上右击&#xff0c;然后选择复制链接地址。打开远程命令窗口&#xff0c;进入root或者用户模式。 (1)、下…

前6个最常用的Redis库

Redis目前 是世界上最受欢迎的键值商店&#xff0c; 它通过提供高速和低延迟以及针对应用程序开发人员的灵活功能集&#xff0c;赢得了广泛的采用率 。 Redis是一个内存数据结构存储&#xff0c;用作根据BSD许可分发的数据库&#xff0c;缓存和消息代理 。 许多领先的技术品牌…

拓扑排序算法总结

知识概览 求图的拓扑序是图的宽搜的一个很经典的应用&#xff0c;拓扑序列是针对有向图来说的。 拓扑序列的定义是&#xff1a; 如果说一个点的序列满足对于图中的每条有向边(x, y)&#xff0c;x都出现在y的前面&#xff0c;那就称这个序列是这个图的拓扑序列。 备注&#xff…

Ns3使用MPI加速仿真速度

Ns3中在大规模拓扑仿真中&#xff0c;为加速仿真速度&#xff0c;可以利用MPI工具&#xff0c;实现多进程联合仿真。 linux系统下安装openmpi. 参考链接# ubuntu下安装openMPI成功运行ns-3中的文件 命令1:sudo gedit /etc/profile打开文件&#xff0c;加入ns-3的路径: 最后此文…

代码中 #ifdef注释方法的使用

1 代码中 #ifdef注释方法的使用 #ifdef的使用 #ifdef _XXXX ...程序段1... #else ...程序段2... #endif如果标识符_XXXX已经被#define定义&#xff0c;则编译程序段&#xff11;&#xff0c;否则编译程序段&#xff12;&#xff0e;#else非必须&#xff0c;可不存在程序段&am…

input发送a.jax_JAX-RS 2.0的新功能– @BeanParam批注

input发送a.jax至少可以说JAX-RS很棒&#xff0c;也是我的最爱之一&#xff01; 为什么&#xff1f; 功能丰富 直观&#xff08;因此学习曲线不那么陡峭&#xff09; 易于使用和开发 具有出色的RI – Jersey &#xff0c; RestEasy等 有足够的JAX-RS粉丝可以添加此内容&am…

常用的\与/的区别

1 常用的\与/的区别 1.1 正斜杠/ 正斜杠"/"一般作为除法符号或者间隔符号使用&#xff0c;主要用于间隔使用。 在unix系统中&#xff0c;/ 表示目录。由于web遵循unix命名&#xff0c;所以在网址&#xff08;URL&#xff09;中&#xff0c;/ 表示目录 1.2 反斜杠 …

Netty Java快速指南

使用Okta的身份管理平台轻松部署您的应用程序 使用Okta的API在几分钟之内即可对任何应用程序中的用户进行身份验证&#xff0c;管理和保护。 今天尝试Okta。 Netty是一个无阻塞的输入/输出&#xff08;NIO&#xff09;框架&#xff0c;它使开发低级网络服务器和客户端变得相对…

编辑器中代码中多行注释

1 Sublime 快捷键为ctl shift / ,并在第二行打一个*后&#xff0c;以后的换行会自动在开始打印一个* 2 VScode 快捷键为Alt Shift A,并在第二行与第三行分别开始打一个*后&#xff0c;以后的换行会自动在开始打印一个* 3 两者最通用的方式 使用快捷键后&#xff0c;在…

到无限(溪流)和超越!

Java允许您处理集合或流中的数据。 将流视为将一个集合转换为另一个集合的技术非常容易。 这可能会导致一些相当随意的代码&#xff0c;在该代码中&#xff0c;流数据被重复收集到某种类型的集合中&#xff0c;作为整体集合传递&#xff0c;然后再进行更多处理。 对于6个元素&…

PicGo {“message“:“A file with this name already exists“}解决方案

这里主要是重复上传了同类型的文件导致的冲突 1、打开PicGo 2、点击并打开PicGo设置 3、将“时间戳重命名”打开 4、从新上传测试一遍就可以了 结语 用时间戳给图片命名是避免文件重复的好方式&#xff0c;推荐设置

hadoop的开发工具_Hadoop开发工具简介

hadoop的开发工具几天前&#xff0c; Apache Hadoop开发工具 &#xff08;又名HDT &#xff09;发布了。 这些项目旨在将插件引入eclipse中&#xff0c;以简化Hadoop平台上的开发。 该博客旨在概述HDT的一些重要功能。 单端点 该项目可以充当HDFS&#xff0c;Zookeeper和MR群集…

如何将PDG文件转换成PDF文件?

1、下载Pdg2Pic软件。百度网盘链接&#xff1a;http://pan.baidu.com/s/1eQyzE Pdg2Pic.rar1.05M 来自:百度网盘点击跳转网盘 2、软件为绿色版&#xff0c;解压后直接运行。 3、选择存放PDG文件的目录。 4、选择以“图片”或是“PDF”格式输出&#xff0c;并设置相应输出路…

Jakarta EE的拟议命名空间

免责声明&#xff1a;这是我的个人观点&#xff0c;并不代表雇主的观点。 到目前为止&#xff0c;由于从Oracle迁移到Eclipse Foundation&#xff0c;每个人都知道我们需要将所有javax软件包名称重命名为其他名称。 &#xff08;供参考&#xff0c;请参阅附录A&#xff09; …

如何让.gitignore文件生效

如何让.gitignore文件生效 改动过.gitignore文件之后&#xff0c;在repo的根目录下运行 # 先将当前仓库的文件的暂存区中剔除 git rm -r --cached .# 再添加所有的文件到暂存区&#xff0c;这时.gitignore文件就会生效了 git add .# 提交 git commit -m "fixed untracke…

java identity_仔细研究Java Identity API

java identity在深入探讨之前&#xff0c;让我们看一下有关Java Identity API JSR 351的一些快速事实。 这仍在进行中。 。 。 JSR是什么时候发起的&#xff1f; 该JSR在2011年10月通过了批准投票&#xff0c;随后在2011年11月成立了专家组。 谁负责此规范&#xff1f; Jav…

隐藏任务栏后任务栏出不来怎么办?任务栏快捷键

喜欢隐藏任务栏的朋友&#xff0c;是不是发现了一个有时候隐藏任务栏&#xff0c;任务栏下沉后用鼠标去唤醒&#xff0c;以重新显示任务栏而显示&#xff0c;激活不出来的问题?十分容易解决&#xff0c;见下。使用显示任务栏的快捷键。 这些问题经常出现在比如开启了一个或者…

JDK 14中更好的NPE消息

我的2019年3月博客文章“ Java会出现更好的默认NullPointerException消息吗&#xff1f; ”是在尚未针对特定JDK版本针对更好的NullPointerException消息的JEP 草案编写时编写的。 此后&#xff0c;该JEP草案成为JEP 14的 目标 JEP 358&#xff08;“ Helpful NullPointerExcep…

jvm能识别什么字符集_识别JVM –比预期要难

jvm能识别什么字符集在Plumbr&#xff0c;我们花费了上个月的时间来为将来的重大改进奠定基础。 此类构件之一是为JVM添加唯一标识符&#xff0c;以便将来自同一JVM的所有会话链接在一起。 尽管一开始似乎是一项琐碎的任务&#xff0c;但是当查看JVM捆绑的jps命令的输出时&…

Spring MVC绑定,无设置器

即使域模型对象没有设置器&#xff0c;也可以将表单参数绑定到域模型对象。 只需添加带有InitBinder方法的ControllerAdvice类&#xff0c;即可通过initDirectFieldAccess&#xff08;&#xff09;方法将应用程序配置为进行字段绑定 package boottests.controllers;import org…