beans.xml Spring CXF中的奇怪验证错误

时间:2013-08-16 02:44:01

标签: java xml spring jboss cxf

目前正在使用Spring进行CXF。它会返回此警告:

10:40:38,492 WARN  [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] (MSC service thread 1-2)
 Ignored XML validation warning: org.xml.sax.SAXParseException: schema_reference.4:
 Failed to read schema document 'http://cxf.apache.org/schemas/jaxrs.xsd', because 
1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>.

然后它在启动时返回此错误:

10:40:38,571 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-2) 
Context initialization failed: org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException:
 Line 14 in XML document from ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml] 
is invalid; nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.c:
The matching wildcard is strict, but no declaration can be found for element 'jaxrs:server'.

这是我的beans.xml:

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

    <import resource="classpath:META-INF/cxf/cxf.xml" />
    <jaxrs:server id="myOrder" address="/">
            <jaxrs:servicebeans>
                <ref bean="orderInfoImpl">
                </ref>
            </jaxrs:servicebeans>

        </jaxrs:server>
        <bean id="orderInfoImpl" class="com.example.rest.OrderInfoImpl">
        </bean>

    <context:component-scan base-package="simpleclient, com.example.rest" />

    <bean
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix">
            <value>/WEB-INF/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>
</beans>

2 个答案:

答案 0 :(得分:1)

能够通过添加正确的罐子来解决这个问题,显然,jboss 7拥有现成的cxf罐子,但是我在我的应用程序中使用的罐子是不同的版本。我只是匹配罐子并且它有效,也在classpath / pom.xml中排除了jetty。

答案 1 :(得分:0)

我开始在Apache Karaf中遇到这个错误 - 当我从Oracle Java 6升级到7时开始发生。回到6并且错误停止了,但是还没有进行任何调查。