Spring整合XFire的注入问题

分类: Spring 2009-11-21 00:53  3345人阅读  评论(2)  收藏  举报

给WebService注入其他类的时候,报空指针错误。

web.xml配置如下:

[xhtml]  view plain copy print ?
  1. <servlet>  
  2.   <servlet-name>XFireServlet</servlet-name>  
  3.   <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>  
  4.   <load-on-startup>0</load-on-startup>  
  5.  </servlet>  

 

 

结果当webservice调用webservice服务时,报错:

[xhtml]  view plain copy print ?
  1. org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException  
  2. org.codehaus.xfire.fault.XFireFault: Fault: java.lang.NullPointerException  
  3.     at org.codehaus.xfire.fault.Soap11FaultSerializer.readMessage(Soap11FaultSerializer.java:31)  
  4.     at org.codehaus.xfire.fault.SoapFaultSerializer.readMessage(SoapFaultSerializer.java:28)  
  5.     at org.codehaus.xfire.soap.handler.ReadHeadersHandler.checkForFault(ReadHeadersHandler.java:111)  
  6.     at org.codehaus.xfire.soap.handler.ReadHeadersHandler.invoke(ReadHeadersHandler.java:67)  
  7.     at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)  
  8.     at org.codehaus.xfire.client.Client.onReceive(Client.java:406)  
  9.     at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:139)  
  10.     at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)  
  11.     at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)  
  12.     at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)  
  13.     at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)  
  14.     at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)  
  15.     at org.codehaus.xfire.client.Client.invoke(Client.java:336)  
  16.     at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)  
  17.     at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)  
  18.     at $Proxy0.btsPower(Unknown Source)  
  19.     at com.boco.veh.ws.test.WSTest.main(WSTest.java:36)  

 

 

 

 

 

 

这个问题可以通过如下配置解决。

 

[xhtml]  view plain copy print ?
  1. <servlet>  
  2.  <servlet-name>XFireServlet</servlet-name>  
  3.  <!-- 不整合时使用org.codehaus.xfire.transport.http.XFireConfigurableServlet -->  
  4.  <servlet-class>org.codehaus.xfire.spring.XFireSpringServlet</servlet-class>  
  5.  <load-on-startup>0</load-on-startup>  
  6. </servlet>  
  7. <servlet-mapping>  
  8.  <servlet-name>XFireServlet</servlet-name>  
  9.  <url-pattern>/servlet/XFireServlet/*</url-pattern>  
  10. </servlet-mapping>  
  11.   
  12. <servlet-mapping>  
  13.  <servlet-name>XFireServlet</servlet-name>  
  14.  <url-pattern>/services/*</url-pattern>  
  15. </servlet-mapping>  
  16. <listener>  
  17.  <listener-class>  
  18.   org.springframework.web.context.ContextLoaderListener  
  19.  </listener-class>  
  20. </listener>  
  21. <context-param>  
  22.  <param-name>contextConfigLocation</param-name>  
  23.  <param-value>classpath:org/codehaus/xfire/spring/xfire.xml,/WEB-INF/applicationContext.xml</param-value>  
  24. </context-param>  

 

xfire不整合spring时,使用

org.codehaus.xfire.transport.http.XFireConfigurableServlet

xfire整合spring时,使用

org.codehaus.xfire.spring.XFireSpringServlet

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值