首页 文章

apache cxf rest服务中的Spring异常

提问于
浏览
0

我正在学习如何使用apache cxf构建一个休息服务,我按照教程 . 但是当我运行代码时,我得到了以下异常

SEVERE:上下文初始化失败org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源[com / example / rest / cxf.xml]的XML文档中的第15行无效;嵌套异常是org.xml.sax.SAXParseException; lineNumber:15; columnNumber:55; cvc-elt.1:找不到元素'beans'的声明 . 位于org.springframework.beans.factory的org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)位于org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader)的org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)中的.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) .java:178)org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)at org . springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:9 2)org.springframework.context上的org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)org.springframework.context上的org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422),AbstractApplicationContext .rresh(AbstractApplicationContext.java:352)org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)at org . 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5003)org.apache.catalina.core.StandardContext.startInternal(StandardContext . )中的springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) . java:5517)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase $ StartChild.call(Container) Base.java:1574)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1564)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.util.concurrent中ORG:.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)在java.lang.Thread.run(Thread.java:745)所致 . xml.sax.SAXParseException; lineNumber:15; columnNumber:55; cvc-elt.1:找不到元素'beans'的声明 . at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)在com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)在com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java: 1906)com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:746)at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl . Java的:379)在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl $ NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:605)在COM . sun.com.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3138)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ PrologDriver.next(XMLDocumentScannerImpl.java:880 )在com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)at atcom.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117)位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)at at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)at at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)at at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)位于org.springframework的org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) . beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)... 22更多2015年10月28日上午2:52:44 org.apache.catalina.core.StandardContext listenerStart SEVERE:异常将上下文初始化事件发送到类的监听器实例org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:来自类路径资源的XML文档中的第15行[com / example / rest / cxf.xml]无效;嵌套异常是org.xml.sax.SAXParseException; lineNumber:15; columnNumber:55; cvc-elt.1:找不到元素'beans'的声明 . 位于org.springframework.beans.factory的org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:404)org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:342)位于org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader)的org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)中的.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310) .java:178)org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124)at org . springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:9 2)org.springframework.context上的org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)org.springframework.context上的org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:422),AbstractApplicationContext .rresh(AbstractApplicationContext.java:352)org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)at org . 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5003)org.apache.catalina.core.StandardContext.startInternal(StandardContext . )中的springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) . java:5517)org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)at org.apache.catalina.core.ContainerBase $ StartChild.call(Container) Base.java:1574)在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1564)在java.util.concurrent.FutureTask.run(FutureTask.java:266)在java.util.concurrent中ORG:.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617)在java.lang.Thread.run(Thread.java:745)所致 . xml.sax.SAXParseException; lineNumber:15; columnNumber:55; cvc-elt.1:找不到元素'beans'的声明 . at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368)在com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:325)at atcom.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1906)at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java) :746)at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:379)at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl $ NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl .java:605)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3138)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl $ PrologDriver .next(XMLDocumentScannerImpl.java:880)位于com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)的com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl .next(XMLNSDocumentScannerImpl.java:117)at com.sun.org.apache.xerces.internal.impl.XMLDocum entSragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)位于com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)的com.sun.org.apache.xerces.internal.parsers . XML11Configuration.parse(XML11Configuration.java:777)位于com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)的com.sun.org.apache.xerces.internal.parsers . 位于org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument的com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:348)中的DOMParser.parse(DOMParser.java:243) DefaultDocumentLoader.java:75)at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396)... 22更多

我的cxf.xml文件是这样的

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns:jaxrs="http://cxf.apache.org/jaxrs" 
xmlns:util="http://www.springframework.org/schema/util" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://www.springframework.org/schema/beans" 
xsi:schemalocation=
           "http://www.springframework.org/schema/beans      
            http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
            http://www.springframework.org/schema/tx  
            http://www.springframework.org/schema/tx/spring-tx-4.2.xsd 
            http://www.springframework.org/schema/context  
            http://www.springframework.org/schema/context/spring-context-4.2.xsd
            http://cxf.apache.org/jaxrs 
            http://cxf.apache.org/schemas/jaxrs.xsd">   

<import resource="classpath:META-INF/cxf/cxf.xml">  
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml">  
<import resource="classpath:META-INF/cxf/cxf-servlet.xml">  
<jaxrs:server address="/" id="connectionService">  

 <jaxrs:servicebeans>             
  <ref bean="order">    </ref></jaxrs:servicebeans> 

    <jaxrs:extensionmappings>    
    <entry key="xml" value="application/xml">   
    </entry></jaxrs:extensionmappings>  
    </jaxrs:server> <bean class="com.example.rest.OrderInfoImpl" id="order">
    </bean>

    </import></import></import></beans>

请帮我解决这个问题 .

1 回答

  • 1

    你已经在导入类中声明了jaxrs bean,这是错误的,这里是更新的beans.xml文件

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns:jaxrs="http://cxf.apache.org/jaxrs" 
           xmlns:util="http://www.springframework.org/schema/util" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
           xmlns="http://www.springframework.org/schema/beans" 
           xsi:schemalocation=
               "http://www.springframework.org/schema/beans      
                http://www.springframework.org/schema/beans/spring-beans-4.2.xsd 
                http://www.springframework.org/schema/tx  
                http://www.springframework.org/schema/tx/spring-tx-4.2.xsd 
                http://www.springframework.org/schema/context  
                http://www.springframework.org/schema/context/spring-context-4.2.xsd
                http://cxf.apache.org/jaxrs 
                http://cxf.apache.org/schemas/jaxrs.xsd">   
    
        <import resource="classpath:META-INF/cxf/cxf.xml" />
        <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" /> 
        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
    
        <jaxrs:server address="/" id="connectionService">  
            <jaxrs:servicebeans>             
                <ref bean="order">    
                </ref>
            </jaxrs:servicebeans> 
            <jaxrs:extensionmappings> 
                <entry key="xml" value="application/xml"></entry>
            </jaxrs:extensionmappings>  
        </jaxrs:server> 
    
        <bean class="com.example.rest.OrderInfoImpl" id="order" />
    </beans>
    

相关问题