使用 Java 8 构建时 Web 服务启动失败

Webservice failing on startup when built with Java 8

我们正在使用 Java8 构建网络服务并将其部署到 Tomcat8。我们在启动过程中遇到以下错误。

原因:org.springframework.beans.factory.BeanDefinitionStoreException:IOException 从 class 路径资源 [META-INF/cxf/cxf-servlet.xml] 解析 XML 文档;嵌套异常是 java.io.FileNotFoundException: class 路径资源 [META-INF/cxf/cxf-servlet.xml] 无法打开,因为它不存在

当我们使用 Java7 构建相同的组件时,我们没有看到这个问题。

这是我们的 pom 依赖项

   <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>2.7.0</version>
    </dependency>

这是我们的 web.xml

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationConfig.xml</param-value>
</context-param>

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

<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>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

ApplicationConfig.xml 有导入

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

请帮忙。尝试使用 3.0.4 和 3.1.8 cxf 版本,但无法构建应用程序。

将此依赖项添加到您的项目中

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-transports-http</artifactId>
    <version>2.7.0</version>
</dependency>