【问题标题】:How to configure CXF servlet outside of web.xml如何在 web.xml 之外配置 CXF servlet
【发布时间】:2012-12-04 21:35:51
【问题描述】:

我希望能够使用 spring 配置文件禁用 web 服务。我用以下内容包围了所有与 cxf 相关的 bean:

<beans profile="webservices">...</beans>

但剩下的是web.xml中的cxf servlet:

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
</servlet-mapping>

我正在考虑将其替换为:

<servlet>
<servlet-name>webservicesDispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>

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

我需要配置 webservicesDispather 来做与 CXFServlet 一样的事情。到目前为止,webservicesDispatcher-servlet.xml 的内容如下所示:

<beans xmlns="... > 
    <beans profile="webservices">    
     <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" />    
    </beans>
</beans>

那么,知道 webservicesDispatcher-servlet.xml 的内容应该是什么吗?

【问题讨论】:

    标签: spring spring-mvc cxf


    【解决方案1】:

    AFAIK CXFServlet 必须是 CXF 流的前端控制器,DispatcherServlet 不能替代 CXFServlet 执行的功能 - 为什么您希望 DispatcherServlet 单独处理 Spring MVC 流和 CXF WS 流 - CXF servlet 可以参考无论哪种方式,DispatcherServlet 定义的上下文文件中的 beans。

    【讨论】:

    • 我只是希望如果 webservices 配置文件被禁用,cxf 不会被初始化。
    • 如何使用WebApplicationInitializer 以编程方式注册 servlet - 基于系统属性注册 CXFServlet 或避免注册它。您也可以使用相同的系统属性激活您的网络服务配置文件。
    猜你喜欢
    • 2014-04-18
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 2018-08-06
    相关资源
    最近更新 更多