2

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

现在我所拥有的只是一个基本的 HelloWorld Spring 项目设置,并且正在尝试找出需要配置 Apache Camel 的内容以及从哪里开始创建一个简单的 Web 服务。

我已经查看了 Apache 站点上的示例,但我希望这里的某个人知道一个教程,它是我正在尝试做的事情的基本开始到完成。

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

4

2 回答 2

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

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

于 2013-01-11T22:49:08.297 回答
-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 并使用 JAX-WS 前端将服务类定义为 Spring bean。

<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>
于 2016-10-17T07:17:47.197 回答