2017-06-06 69 views
0

我们正在构建一个包含Java8的Web服务并将其部署到Tomcat8。我们在启动过程中遇到以下错误。 org.springframework.beans.factory.BeanDefinitionStoreException:IOException从类路径资源解析XML文档[META-INF/cxf/cxf-servlet.xml];嵌套异常是java.io.FileNotFoundException:无法打开类路径资源[META-INF/cxf/cxf-servlet.xml]因为它不存在使用Java 8构建Web服务时启动失败

当我们用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版本,但那在构建应用程序失败。

+0

您是否验证了'META-INF/CXF/CXF-servlet.xml'存在并且可访问? – bradimus

回答

0

加入这个依赖于你的项目

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

如果您打算回答投票答案,请给出解释。 'cxf-servlet.xml'文件是'cxf-rt-transports-http' jar的METE-INF,所以这个答案应该解决这个问题。 –

+2

如果你打算回答,请给出解释。这个评论应该在你的回答中提供证据。 –

+0

谢谢大卫..这确实解决了我的问题。 – user1344411