通过初始化参数来制定配置文件的位置

在上一篇文章《

基于web的cxf的第一种发布方式——简单发布

》中,我们并没有制定cxf-servlet.xml的位置

可是为什么就能读到cxf-servlet.xml呢?这时因为系统会默认的到web-inf目录下去找一个名为cxf-servlet.xml的文件,当我们移动cxf-servlet.xml

早其他位置时,它会报以下错误

  1. 警告: Can't find the the request for http://localhost:8080/CXF_3/cxf/hello's Observer  
警告: Can't find the the request for http://localhost:8080/CXF_3/cxf/hello's Observer 

解决办法如下:

1、web.xml中

   在web.xml中加上以下代码:

 

  1. <init-param> 
  2.             <param-name>config-location</param-name> 
  3.             <param-value>classpath:cxf-servlet.xml</param-value>//这时就回到classpath下去找名为cxf-servlet.xml文件 
  4.         </init-param> 
<init-param>
			<param-name>config-location</param-name>
			<param-value>classpath:cxf-servlet.xml</param-value>//这时就回到classpath下去找名为cxf-servlet.xml文件
		</init-param>

以下附上CXF核心servlet(CXFServlet)的主要代码(以下代码可以通过将cxf的狠心jar包拖进反编译工具中获得)

  1. package org.apache.cxf.transport.servlet; 
  2.  
  3. import java.io.IOException; 
  4. import java.io.InputStream; 
  5. import java.net.URL; 
  6. import javax.servlet.ServletConfig; 
  7. import javax.servlet.ServletContext; 
  8. import org.apache.cxf.Bus; 
  9. import org.apache.cxf.BusFactory; 
  10. import org.springframework.context.ApplicationContext; 
  11. import org.springframework.core.io.Resource; 
  12. import org.springframework.web.context.support.WebApplicationContextUtils; 
  13. import org.springframework.web.context.support.XmlWebApplicationContext; 
  14.  
  15. public class CXFServlet extends CXFNonSpringServlet 
  16.   protected void loadBus(ServletConfig sc) 
  17.   { 
  18.     ApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(sc.getServletContext()); 
  19.  
  20.     String configLocation = sc.getInitParameter("config-location"); 
  21.     if (configLocation == null
  22.       try
  23.         InputStream is = sc.getServletContext().getResourceAsStream("/WEB-INF/cxf-servlet.xml"); 
  24.         if ((is != null) && (is.available() > 0)) { 
  25.           is.close(); 
  26.           configLocation = "/WEB-INF/cxf-servlet.xml"
  27.         } 
  28.       } 
  29.       catch (Exception ex) 
  30.       { 
  31.       } 
  32.     if (configLocation != null) { 
  33.       wac = createSpringContext(wac, sc, configLocation); 
  34.     } 
  35.     if (wac != null
  36.       setBus((Bus)wac.getBean("cxf", Bus.class)); 
  37.     else 
  38.       setBus(BusFactory.newInstance().createBus()); 
  39.   }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值