您的位置:首页 > 编程语言 > Java开发

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

2015-12-15 08:08 627 查看
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的配置文件

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

-->

<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");
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: