Spring使用Apache Camel和Web服务开始

时间:2013-01-11 15:30:53

标签: web-services spring apache-camel

我开始尝试弄清楚如何在Spring框架中使用Apache Camel。我想要抓住的第一件事是运行简单的Web服务调用,但我不知道从哪里开始。

现在我所拥有的是一个基本的HelloWorld Spring项目设置,我正在尝试找出需要配置Apache Camel的明智之处以及从何处开始创建一个简单的Web服务。

我已经看了一下Apache网站上的例子,但我希望这里有人知道一个教程,这是一个基本的开始,完成我想做的事情。

感谢您提供的任何提示或帮助!

2 个答案:

答案 0 :(得分:5)

我确实发现这个有用一次:http://camel.apache.org/spring-ws-example.html(以及驼峰发行版中的完整源代码)。

使用Camel可以通过多种方式处理Web服务。要么像我提到的例子那样使用spring web服务,要么使用Apache CXF。

与CXF相比,Spring Web服务非常容易上手。虽然CXF是一个更完整的Web服务堆栈。

这里有多个Camel和CXF示例: http://camel.apache.org/examples.html

如果你选择CXF,你可能会在与Camel混合之前实际学习一些“仅限CXF”的例子。

基本上有两种方法可以进行Web服务,首先使用WSDL开始契约,然后自动生成类/接口。另一种方法是代码优先 - 你从java类开始,然后获得一个自动生成的WSDL。

这里有一些相当不错的文章:http://cxf.apache.org/resources-and-articles.html

但是要回答你的问题,我不知道有关这个问题的任何好的分步教程。链接中的示例非常好。

答案 1 :(得分:-1)

我有同样的问题,我找到了这篇文章

使用CXF和Spring逐步介绍Web服务创建: http://www.ibm.com/developerworks/webservices/library/ws-pojo-springcxf/index.html?ca=drs-

简而言之,创建Web服务有四个步骤

  

1 - 创建服务端点接口(SEI)并定义方法   作为Web服务公开。

package demo.order;

import javax.jws.WebService;

@WebService
public interface OrderProcess {
  String processOrder(Order order);
}
     

2 - 创建实现类并将其注释为Web服务。

package demo.order;

import javax.jws.WebService;

@WebService(endpointInterface = "demo.order.OrderProcess")
public class OrderProcessImpl implements OrderProcess {

 public String processOrder(Order order) {
  return order.validate();
 }
}
     

3 - 创建beans.xml并将服务类定义为Spring bean   使用JAX-WS前端。

<beans xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:jaxws="http://cxf.apache.org/jaxws"
 xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">

 <import resource="classpath:META-INF/cxf/cxf.xml" />
 <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
 <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> 

 <jaxws:endpoint 
  id="orderProcess" 
  implementor="demo.order.OrderProcessImpl" 
  address="/OrderProcess" />

</beans>
     

4 - 创建web.xml以集成Spring和CXF。

<web-app>
 <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>WEB-INF/beans.xml</param-value>
 </context-param>

 <listener>
  <listener-class>
   org.springframework.web.context.ContextLoaderListener
  </listener-class>
 </listener>

 <servlet>
  <servlet-name>CXFServlet</servlet-name>
  <display-name>CXF Servlet</display-name>
  <servlet-class>
   org.apache.cxf.transport.servlet.CXFServlet
  </servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>

 <servlet-mapping>
  <servlet-name>CXFServlet</servlet-name>
  <url-pattern>/*</url-pattern>
 </servlet-mapping>
</web-app>