Java 将CXF SOAP Web服务部署到Apache Tomcat

Java 将CXF SOAP Web服务部署到Apache Tomcat,java,web-services,tomcat,soap,cxf,Java,Web Services,Tomcat,Soap,Cxf,我最近重新编写了一个web服务应用程序,以使用CXF而不是Axis。切换非常简单,但我在部署webapp时遇到了问题。以前,使用Axis,您可以导航到Tomcat提供的页面,该页面将列出所有Axis服务;类似于http://localhost:8080/axis2/services/listServices。要查看服务的WSDL,我需要导航到http://localhost:8080/axis2/services/Service?wsdl 在CXF中重写服务之后,我发现我真的不知道如何部署和配置

我最近重新编写了一个web服务应用程序,以使用CXF而不是Axis。切换非常简单,但我在部署webapp时遇到了问题。以前,使用Axis,您可以导航到Tomcat提供的页面,该页面将列出所有Axis服务;类似于
http://localhost:8080/axis2/services/listServices
。要查看服务的WSDL,我需要导航到
http://localhost:8080/axis2/services/Service?wsdl

在CXF中重写服务之后,我发现我真的不知道如何部署和配置应用程序。我遵循了一个基本的CXF设置,其中我的应用程序的
web.xml
文件导入一个Spring配置文件
beans.xml
。我可以很好地解决所有这些问题,并将其部署到Tomcat中,在Tomcat中它可以很好地爆炸,并且不会发生错误日志记录,但我甚至不知道如何在主机上浏览以查看已部署web服务的列表

我能得到一些帮助和解释吗?我想了解如何配置CXF,以便知道要使用哪些URL来列出服务并查看其相应的WSDL。请随意解释这一部分,就像我五岁一样;我是一名优秀的程序员,但部署和配置并不是我最擅长的知识领域

在试图理解这一点时,我注意到beans.xml文件引用了
类路径的导入:META-INF/cxf/cxf.xml
。我不知道这个文件是什么,也不知道它在哪里,但我的假设是,它可能是需要的,我应该理解它的作用。有人能解释一下吗?Tomcat的
web.xml
与此配置有关吗

如果我可以提供任何更多的信息或配置,以协助这篇文章,让我知道

以下是我的应用程序的web.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
    version="3.0">
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>WEB-INF/beans.xml</param-value>
    </context-param>
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    <servlet>
        <display-name>CXF Servlet</display-name>
        <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>/services/*</url-pattern>
    </servlet-mapping>
    <mime-mapping>
        <extension>inc</extension>
        <mime-type>text/plain</mime-type>
    </mime-mapping>
</web-app>

上下文配置位置
WEB-INF/beans.xml
org.springframework.web.context.ContextLoaderListener
cxfservlet
CXF服务器
org.apache.cxf.transport.servlet.CXFServlet
1.
CXF服务器
/服务/*
股份有限公司
文本/纯文本
下面是我的beans.xml:

<?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">

    <import resource="classpath:META-INF/cxf/cxf.xml" />

    <jaxws:endpoint
        id="accountService"
        implementor="com.company.ws.data.services.AccountService"
        address="/AccountService" />

    <jaxws:endpoint
        id="loggingService"
        implementor="com.company.ws.data.services.LoggingService"
        address="/LoggingService" />

    <jaxws:endpoint
        id="searchService"
        implementor="com.company.ws.data.services.SearchService"
        address="/SearchService" />

    <jaxws:endpoint
        id="validationService"
        implementor="com.company.ws.data.services.ValidationService"
        address="/ValidationService" />
</beans>

您可以访问
http://localhost:8080/{YourwebApp}/services
假设您的Web应用程序是webapp1,然后
http://localhost:8080/webapp1/services