2016-04-25 104 views
2

我是JBoss Fuse和Karaf,Camel,Fabic8,CXF的堆栈的新手。JBOSS中基于Spring Boot的RESTful服务保险丝

我想部署一个简单的宁静服务JBoss Fuse(6.2.1)。

我想理想地使用Spring Boot,因为它使开发/测试更容易独立的开发盒(可以提升servlet容器等)。 我还想尽可能地减少(或消除)超出Maven POM的任何XML配置。 所以Spring Java配置,而不是XML配置。我打算使用Spring-MVC或Jax-RS/CXF来进行服务。

这是可以实现的和一个“良好”的过程?

我似乎无法找到任何类似的可行示例。有人可以指点我一个例子,或者提供一些提示来解决这个问题吗?我已经很熟悉Spring/Spring-MVC/Jax-RS。但是在Karaf/Camel/Fabric8/OSGi之间,各种部署选项等等,我都在圈圈,无法入门。

谢谢!

只是为了澄清,这是用于Karaf上的JBOSS保险丝,而不是Fuse EAP。

回答

3

我不认为这是可以实现的,如果是,它可能不应该是。

首先,Java的配置:

当然,你可以有与保险丝的骆驼组成部分的Spring Java注释,记住,保险丝6.2利用弹簧3.2轴承,所以你几乎与任何支持卡提供的Java配置。我没有尝试过,但肯定会支持它。

其次,保险丝和Spring引导:

在春季启动,保险丝和春季启动的条件是不是真的兼容,因为他们都是容器中运行应用程序(保险丝容器的范围更广而不是春季启动,但基本上它们都希望管理应用程序的执行环境)。

怎么办?

如果您只是想运行REST Web服务并且不需要任何其他Fuse'好处',那么Spring Boot就是一个非常强大的容器,可以为您的服务挑选出所有Fuse的东西(尽管你可以通过在应用程序中使用Java库来使用Camel和AMQ)。

如果您需要使用保险丝作为你的执行环境,那么你真的不想使用Spring启动。大概需要OSGI,布料等,所以你需要穿保险丝直夹克。休息终点,我想看看骆驼,其余成分,但是如果你真的想用JAX-RS JSR311资源绑定那么它描述in the camel docs,虽然我没有试过用保险丝(6.2使用了驼峰2.15所以这应该工作)。

为了抛出另一个扳手,我最近使用dropwizard作为REST服务的容器,这个服务大量使用Jax-RS和球衣(我更喜欢CXF配置的恐怖),并且并没有像弹簧启动那样做很多魔术自动配置。

+0

谢谢@ stringy05。是的,看起来像Spring Boot,它的所有类路径魔术都不是OSGi友好的,所以这是一个不行。我能够在Fuse/Karaf中使用Spring java配置工作(使用Spring 3.2.12.RELEASE)。我确实必须包含一个spring xml配置来识别容器,但只需将XML配置指向我的java配置并且一切正常。 – crig

1

由于您的问题有很多部分,我将试图打破他们,给我的意见和背后的思考过程:

  1. “春BOOT使得开发和测试更容易” &“避免XML配置” - 诚然。要在本地进行原型设计,您可以使用嵌入式tomcat快速开发,部署和测试。一旦准备好部署到任何应用服务器(您的情况为JBoss Fuse),就可以从POM中删除嵌入式tomcat插件,并部署生成的工件
  2. “Spring Java配置的使用” - 如果不需要您使用Spring BOOT,它会为您提供配置所需的所有选项。
  3. 要开始(从像注释创建神器deply在JBoss框架的使用),正式文档涵盖所有步骤[例projectw与嵌入式的tomcat - https://github.com/spring-projects/spring-boot/tree/master/spring-boot-samples/spring-boot-sample-tomcat &教程 - http://spring.io/guides/gs/rest-service]
  4. 部署选项 - 如果您正在使用Maven,那么将编译为工件创建生命周期。为了自动化部署并在服务器上处理Maven生命周期,Jenkins是一个很好的候选人:不幸的是,我没有使用你提到的其他候选人。
+0

感谢您的回答Srikanta。我更新了澄清,这不是JBOSS EAP,这是保险丝与Apache Karaf /骆驼,从而改变部署相当多的问题。 – crig