0

我有一个使用 apache cxf 开发的 rest API 模块。我想让 spring 集成组件在同一个模块中运行。这个特性只是在每个午夜做一个文件轮询,复制到一些目录,然后做一些处理。我只需要知道 spring-integration 是否必须在不同的模块中实现,或者我可以在同一个 API 模块中执行。我不希望由于 Spring 集成过程而中断其余的 api 服务调用。

4

1 回答 1

1

您可以使用相同的模块,因为它不会影响当前的 api 服务调用。由于 Spring 具有调度程序 servlet 条目,它将根据提供的 servlet 映射处理请求。我已将 CXF servlet 的映射稍微更改为 /services 以处理 api 请求。

web.xml 中的 Dispatcher Servlet 条目。

  <web-app id="Expertwebindia" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
        <display-name>Spring MVC Application</display-name>
        <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
        </servlet-mapping>
        </web-app>

为 Apache CXF 添加以下 servlet 条目以处理 api 调用。

 <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>2</load-on-startup>
    </servlet>

<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

在此处了解有关 JAX-WS Web 服务的更多信息

于 2016-02-10T06:18:52.553 回答