加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService:与Spring整合需要注意的问题

发布时间:2020-12-16 22:27:31 所属栏目:安全 来源:网络整理
导读:1. l 如果在项目中仅发布 webservice , 则可以只配置以下内容。 l 同时默认即是读取 WEB-INF/cxf-servlet.xml 文件,所以是否指定都可以。 servlet !-- 配置 cxf -- servlet -name cxf / servlet -name servlet -class org.apache.cxf.transport.servlet.CXF
1.
l
如果在项目中仅发布 webservice , 则可以只配置以下内容。
l
同时默认即是读取 WEB-INF/cxf-servlet.xml 文件,所以是否指定都可以。

<servlet>

<!-- 配置cxf -->

<servlet-name>cxf</servlet-name>

<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

<init-param>

<!-- 配置Spring的配置文件 -->

<param-name>config-location</param-name>

<param-value>/WEB-INF/cxf-servlet.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

<servlet-mapping>

<servlet-name>cxf</servlet-name>

<url-pattern>/ws/*</url-pattern>

</servlet-mapping>


2.
l 但一般情况下,一个 web 项目,在使用了 Spring 之后,往往会通过 ApplicationContext 获取一些服务并且为了第一次访问的速度问题,此时则必须注册 Spring 的监听器。即以下代码:

<?xmlversion="1.0" encoding="UTF-8"?>

<web-appversion="2.5"

? xmlns="http://java.sun.com/xml/ns/javaee"

? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

? <context-param>

? ? <param-name>contextConfigLocation</param-name>

? ? <param-value>

? ? /WEB-INF/cxf-itcast.xml

? ? </param-value>

? </context-param>

? <listener>

? ? <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

? </listener>

? <servlet>

? ? <servlet-name>cxf</servlet-name>

? ? <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>

? ? <load-on-startup>1</load-on-startup>

? </servlet>

? <servlet-mapping>

? ? <servlet-name>cxf</servlet-name>

? ? <url-pattern>/ws/*</url-pattern>

? </servlet-mapping>

? <welcome-file-list>

???<welcome-file>index.jsp</welcome-file>

? </welcome-file-list>

</web-app>


3.
l 在上面出现的重复引入问题,可以修改 cxf-servlet.xml 文件。
l 修改后, CXFServlet 类将不能自动加载 cxf-servlet.xml 文件,此时将导致名为 cxf bean 加载不成功。
l 为解决此问题必须在重新命名的配置文件中加入以下代码,以启动 CXF

即:如果你是用contextConfigLocation加载的配置文件,则必须要加入以下代码。



?<!-- 关于cxf配置的注意事项

?? 如果没有提供给cxf默认的/WEB-INF/cxf-servlet.xml配置文件,则必须要在spring的配置文件

?? 中配置以下三行配置。否则将不能加载名称为cxfbean.从而启动失败。

?? -->

? <import resource="classpath:META-INF/cxf/cxf.xml"/>

<importresource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>

<importresource="classpath:META-INF/cxf/cxf-servlet.xml"/>



4.

l 在增加了 Spring 的监听器之后,即可以使用以下代码在 Servlet 中获取 Spring 的配置 :

ApplicationContextctx =

? WebApplicationContextUtils.getWebApplicationContext(getServletContext());

? Object o = ctx.getBean("one");

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读