1、新建个web工程
2、添加struts功能,部署到服务器,访问index.jsp正常
3、添加CXF功能,并在web.xml进行CXF配置,部署到服务器,再次访问index.jsp。
出现:
2011-2-25 16:40:05 org.apache.cxf.transport.servlet.ServletController invoke
警告: Can't find the request for http://localhost:8888/Client/index.jsp's Observer 这是怎么回事,我的WEB.XML为:        <welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<!-- Struts配置 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>


<!-- CXF 配置 -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<display-name>CXF Servlet</display-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>

解决方案 »

  1.   

     <servlet-mapping>
            <servlet-name>CXFServlet</servlet-name>
            <url-pattern>/*</url-pattern>
        </servlet-mapping>不知道是不是这个问题……
      

  2.   

    Struts 2 一般用于 Web 应用之上,而 CXF 一般用于 Web 服务之上。这两个不应该耦合在一起,最好分成两个工程部署,而不是揉在一起。
      

  3.   

    一般Struts的url-mapping应该设为/*,因为jsp中可能需要Struts Tag支持。而CXF的url-mapping一般不要设为/*,为了不影响多数Web页面的解析,应该将CXF(也就是WebService请求)范围限制小一些,如/service/*