日期:2014-05-20  浏览次数:20793 次

Cxf开发webservice时遇到Can't find the request for xx's Observer
最近在用CXF开发web service时遇到这个很郁闷的问题。第一次用CXF,先说说我的配置吧。
web.xml文件中
 <servlet>
  <servlet-name>CXFServlet</servlet-name>
  <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
  </servlet>
<servlet-mapping>
  <servlet-name>CXFServlet</servlet-name>
  <url-pattern>/*</url-pattern>
  </servlet-mapping>

cxf配置文件中

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
  http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
<!-- CXF webservice配置 -->
<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" />  

<bean id="fyqqRespServiceImpl" class="com.thunisoft.fy.gxpt.server.webservice.service.impl.FyqqRespServiceImpl"/>  
<jaxws:endpoint  
  id="fyqqResp"  
  implementor="#fyqqRespServiceImpl"
  address="/fyqqResp" ></jaxws:endpoint>


</beans>

接口:
@WebService
public interface IFyqqRespService {

public String getRespXML(@WebParam(name="cbr")int cbr) throws ParseException;
}

实现类:

@WebService(endpointInterface = "com.thunisoft.fy.gxpt.server.webservice.service.IFyqqRespService")
public class FyqqRespServiceImpl extends GXPTBaseService implements IFyqqRespService {

}

http://localhost:8888/FyServer/fyqqResp?wsdl 这样访问时,报404,控制台报
Can't find the request for http://localhost:8888/FyServer/fyqqResp's Observer;

http://localhost:8888/FyServer/这样访问时,报

No services have been found.

希望高手们帮帮忙吧!我刚开始以为是JAR 包的问题,一朋友帮做了个例子,可以正常访问。然后我把我系统里的JAR包全拷到那个例子里面还是可以正常访问,但我把例子里的JAR包拷到我的项目里面仍然是同样的错儿。由于我们的web.xml配了一些listener,而且url-pattern全是/*,朋友猜可能是这个的问题,但我把配置注释了还是同样的错误。

------解决方案--------------------
路径问题错误
看看你的配置文件不是什么其它的错误就是报找不到相应的服务和页面
------解决方案--------------------
贴出来的这些确实没发现问题。
可能楼主要多帖点东西了。
------解决方案--------------------
哦,楼主不会忘了配置Spring吧

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

------解决方案--------------------
探讨

这个代理action:DelegatingActionProxy所做的工作也是,获得spring容器,获得被spring容器管理的真正action。

------解决方案--------------------
哥恰好有一个cxf的小demo,给邮箱发给你
------解决方案--------------------
探讨

由于我不能为了这个接口改之前项目的架构,望高手能给出解决这个问题的方案,谢谢了!

------解决方案--------------------
spring和struts的结合方式。
 两者的结合可以有以下三种方式:
 1.使用 spring 的 actionsupport 类整合 structs