【问题标题】:Apache CXF and Spring MVCApache CXF 和 Spring MVC
【发布时间】:2010-07-01 17:05:52
【问题描述】:

我已经建立了一个运行良好的 CXF 网络服务。我的服务主要将数据从 ftp 加载到 db。

我想创建一个 Web 界面,调用者可以通过该界面查看他们的包的进度。我认为将 Spring MVC 与 CXF 集成起来很容易,但似乎没有任何好的解决方案。我在网上找遍了,找不到比这个http://ayax79.wordpress.com/2009/02/19/making-spring-mvc-and-cxf-play-well-together/更简单的东西了

我想将 Spring MVC 与 CXF 集成而不是创建独立的 Web 界面的原因是因为我在 CXF 服务中有一些自定义的 Spring bean,我可以利用它们来启动和停止进程。

在CXF上搭建一个界面有那么难吗?还是我只是没有朝着正确的方向思考?

【问题讨论】:

    标签: java spring-mvc cxf


    【解决方案1】:

    您链接到的文章更多地涉及处理 1) web 请求和 2) 同一 webapp 中的 CXF 请求,即构建一个可以接受 MVC 页面的传统 http 请求并接受 web 服务请求的 web 应用程序。

    那篇文章的作者似乎对 Spring 以及 ApplicationContexts 的工作方式感到非常困惑,因为 the commenter Felix provides a good and simple solution 原作者想要完成的事情(在两个上下文中重用相同的 bean 定义和实例,将一些 URL 映射到 DispatcherServlet以及映射到 CXF 调度程序的其他 URL)。

    如果您只是希望 Spring MVC Web 应用程序能够与 CXF 服务交互并向其发出请求,这很简单 - 您编写代码来使用服务,就像在任何其他类型的应用程序中与CXF/Soap/等网络服务。

    我建议您查看 Spring 手册中有关访问 JAXRPC 或 JAXWS Web 服务的以下部分:

    另一个选择是使用 wsdl2java 之类的工具简单地生成 client proxies for your CXF service。请注意,我链接到的此页面上的下两个选项“JAX-WS 代理”和“JAX-WS Dipatch APIs”在功能上与上面的 Spring 选项相同(在运行时创建动态代理)。

    【讨论】:

    • 这是有道理的。所以你的意思是,我编写了新的服务方法(在 cxf 中),可以调用这些方法来启动或停止在 CXF 中运行的进程。
    • 好吧,我假设您的 CXF 服务中已经有服务方法,而您只是希望能够从您的 MVC 应用程序调用这些服务方法 - 不是这样吗?
    • 不,我没有公开任何服务方法。我的思考过程类似于我附上的文章,即将 spring MVC 和 CXF 集成在一起。我可以在 Spring MVC 中访问我的 cxf spring bean 并通过接口执行停止/启动。因此不需要在 CXF 中创建新的服务方法。但从那篇文章的样子来看,这似乎不是一个直截了当的解决方案?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多