配置问题:无法从 URL 位置导入 Bean 定义



我正在尝试使用apache cxf在我的Spring项目中生成Web服务。一切顺利,因为我可以看到生成的 wsdl 文件和其他文件,但我得到了org.springframework.beans.factory.parsing.BeanDefinitionParsingException.我没有在任何地方使用弹簧。所以我认为是否生成的 wsdl 是不正确的。

以下是一些日志:

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Failed to import bean definitions from URL location [classpath:META-INF/cxf/cxf-extension-soap.xml]
Offending resource: ServletContext resource [/WEB-INF/cxf-beans.xml]; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [META-INF/cxf/cxf-extension-soap.xml]; nested exception is java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-soap.xml] cannot be opened because it does not exist
    at org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85)
    at org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:256)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:207)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:192)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)

cxf-beans.xml是 Spring 配置元数据,它创建 bean、管理生命周期和依赖。由于在您的web.xml中,您已经添加了上下文加载器,其中包含提供cxf-bean.xml位置的上下文参数,因此您已经打开了运行 cxf 的弹簧容器。

回到您的问题,似乎您的 cxf 肥皂服务没有所有依赖项(jar)。由于从 cxf 版本 2.3 开始,cxf.xml内部解决了所有必需的 cxf-extension-*.xml并且由于您使用的是 soap,我相信它正在搜索 cxf-extension-soap.xml这是 cxf-rt-bindings-soap.jar 的一部分。确保所有依赖 cxf 的 jar 都已加载

我使用 cxf

3.0 解决了上述问题并删除了 cxf-extesions-* 的导入.xml

最新更新