我开始尝试弄清楚如何在Spring框架中使用Apache Camel。我想要抓住的第一件事是运行简单的Web服务调用,但我不知道从哪里开始。
现在我所拥有的是一个基本的HelloWorld Spring项目设置,我正在尝试找出需要配置Apache Camel的明智之处以及从何处开始创建一个简单的Web服务。
我已经看了一下Apache网站上的例子,但我希望这里有人知道一个教程,这是一个基本的开始,完成我想做的事情。
感谢您提供的任何提示或帮助!
答案 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>