2012-01-09 12 views
7

Alguna idea, ¿qué podría causar este error?No se puede ubicar Spring NamespaceHandler for XML espacio de nombres de esquema [http://www.springframework.org/schema/data/jpa]

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: problema de configuración: No se puede localizar la primavera NamespaceHandler para XML esquema de espacio de nombres [http://www.springframework.org/schema/data/jpa] infractor de recursos: recursos ServletContext [/WEB-INF/spring/appServlet/servlet-context.xml]

Aquí está mi 'servle-context.xml' (hay algunos problemas con los guiones, pero el archivo es demasiado grande ...):

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/mvc" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:beans="http://www.springframework.org/schema/beans" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:jpa="http://www.springframework.org/schema/data/jpa" 
xsi:schemaLocation="http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd 
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
        http://www.springframework.org/schema/data/jpa 
        http://www.springframework.org/schema/data/jpa/spring-jpa.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd"> 

<!-- DispatcherServlet Context: defines this servlet's request-processing infrastructure --> 

<!-- Enables the Spring MVC @Controller programming model --> 
<annotation-driven /> 

<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> 
<resources mapping="/resources/**" location="/resources/" /> 

<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory --> 
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <beans:property name="prefix" value="/WEB-INF/views/" /> 
    <beans:property name="suffix" value=".jsp" /> 
</beans:bean> 

<context:component-scan base-package="com.epam.mvc3.model" /> 
<context:component-scan base-package="com.epam.mvc3.controller" /> 

<!-- JPA --> 
<beans:bean 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <beans:property name="location"> 
     <beans:value>resources/database.properties</beans:value> 
    </beans:property> 
</beans:bean> 

<beans:bean id="myDataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <beans:property name="driverClassName"> 
     <beans:value>${jdbc.driverClassName}</beans:value> 
    </beans:property> 
    <beans:property name="url"> 
     <beans:value>${jdbc.url}</beans:value> 
    </beans:property> 
    <beans:property name="username"> 
     <beans:value>${jdbc.username}</beans:value> 
    </beans:property> 
    <beans:property name="password"> 
     <beans:value>${jdbc.password}</beans:value> 
    </beans:property> 
</beans:bean> 

<beans:bean id="myEmf" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
    <beans:property name="dataSource" ref="myDataSource" /> 

    <beans:property name="persistenceUnitName" value="application" /> 
    <beans:property name="persistenceXmlLocation" 
     value="classpath*:META-INF/persistence.xml" /> 
    <beans:property name="jpaVendorAdapter" ref="hibernateVendor" /> 

    <beans:property name="loadTimeWeaver"> 
     <beans:bean 
      class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"></beans:bean> 
    </beans:property> 
</beans:bean> 

<beans:bean id="hibernateVendor" 
    class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
</beans:bean> 

<beans:bean id="transactionManager" 
    class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <beans:property name="entityManagerFactory" ref="myEmf"></beans:property> 
</beans:bean> 

<tx:annotation-driven transaction-manager="transactionManager" /> 

<!-- Spring Data configuration --> 
<jpa:repositories base-package="com.epam.mvc3.repository"/> 

</beans:beans> 

Como puede ver, he especificado la ruta al esquema jpa. Y no sé cuál es el problema

+0

Por favor, después de la cabecera completa de su XML. – Kai

+0

está hecho ...... – Eugene

+0

Asegúrate de tener los contenedores de datos de primavera en la ruta de clase. – axtavt

Respuesta

3

tratar de sustituir

http://www.springframework.org/schema/data/jpa/spring-jpa.xsd

por

http://www.springframework.org/schema/data/jpa/spring-jpa-1.0.xsd

Pero si usted todavía utiliza la versión 1.0-M1 a continuación, tratar de actualizar primero . DATAJPA-21

+0

Aunque esta es la respuesta aceptable, no resolvió este problema para mí. Yo uso spring-data-jpa 1.2.0.RELEASE y el resto de mis jarras de primavera son 3.1.3.RELEASE.En cuanto a spring-data-commons-core, ni siquiera tengo una dependencia en mi pom pero puedo verla en mi repositorio de m2 junto con spring-data-commons-parent y ambos de la versión 1.4.0.RELEASE, yo don No sé por qué (tal vez esos son parte de spring-data-jpa?). ¿Alguna nueva idea? – forhas

+0

@forhas: esta parece ser una pregunta diferente. Así que cree una nueva pregunta sobre Desbordamiento de pila (Describa su Probelem, configuración y Excepción, así como también lo que ha probado para la tarifa) y tal vez deje un enlace a su pregunta aquí como comentario. – Ralph

+0

Gracias Ralph, lo haré. – forhas

0

El problema se debe a que el esquema spring-jpa no se puede ubicar. Es posible que tenga un jar viejo que no contenga la información del esquema.

+0

Estoy usando el "hibernate-core-3.6.3.Final.jar", "hibernate-jpa-2.0-api-1.0.0.Final.jar", "spring-data-commons-core-1.1.0 .RELEASE.jar "," spring-orm-3.0.5.RELEASE.jar ". ¿Crees que están obsoletos? – Eugene

+0

@Eugene estás usando el espacio de nombres spring-jpa - ¿No tienes el jarro spring-jpa? Puede encontrarlo [aquí] (http://mirrors.ibiblio.org/pub/mirrors/maven2/org/springframework/spring-jpa/). –

1

Lo solucioné solucionando la falta de la dependencia spring-tx en nuestro proyecto.

org.springframework: primavera-tx

0

Sé que esto parece tonto, pero si usted está utilizando Maven IDEA y usted debe comprobar para asegurarse de que tiene uso de registro complemento fin de poder comprobar que el servidor también tiene acceso a su archivos jar

Publicaba una captura de pantalla, pero soy nuevo aquí y no tengo suficientes puntos de reputación. No funciona y aunque he verificado con el equipo de soporte en IntelliJ

2

Asegúrate de que tienes la primavera-data-APP en sus dependencias

Si utiliza Maven:

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-jpa</artifactId> 
    <version>1.7.0.RELEASE</version> 
</dependency> 
0

Después de enfrentarse a este mismo problema durante una semana, encontré una solución. Si está utilizando Spring MVC + JPA + Maven, utilice este despachador-servlet.xml

<?xml version="1.0" encoding="windows-1252"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:p="http://www.springframework.org/schema/p" 
     xmlns:context="http://www.springframework.org/schema/context" 
     xmlns:mvc="http://www.springframework.org/schema/mvc" 
     xmlns:aop="http://www.springframework.org/schema/aop" 
     xmlns:tx="http://www.springframework.org/schema/tx" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context.xsd 
     http://www.springframework.org/schema/mvc 
     http://www.springframework.org/schema/mvc/spring-mvc.xsd 
     http://www.springframework.org/schema/aop 
     http://www.springframework.org/schema/aop/spring-aop.xsd 
     http://www.springframework.org/schema/tx 
     http://www.springframework.org/schema/tx/spring-tx.xsd"> 

    <!-- Use @Component annotations for bean definitions --> 
    <context:component-scan base-package="PACKAGE WHERE YOU CAN FIND YOUR SOURCE CODE"/> 

    <!-- Use @Controller annotations for MVC controller definitions --> 
    <mvc:annotation-driven /> 

    <!-- Add JPA support --> 
    <bean id="emf" class= 
      "org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 
     <property name="loadTimeWeaver"> 
      <bean class= 
          "org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/> 
     </property> 
    </bean> 

    <!-- Add Transaction support --> 
    <bean id="transactionManager" 
      class="org.springframework.orm.jpa.JpaTransactionManager"> 
     <property name="entityManagerFactory" ref="emf"/> 
    </bean> 

    <!-- Use @Transaction annotations for managing transactions --> 
    <tx:annotation-driven transaction-manager="transactionManager" /> 

    <!-- View resolver --> 
    <bean class= 

<!-- HERE YOU REPLACE PROPERTY VALUE TO MATCH YOUR VIEW FOLDER (JSP PAGES) --> 
        "org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="prefix" value="/web/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

</beans> 
0

demasiado tarde, pero esto solucionó mi problema:

<dependency> 
    <groupId>org.springframework.data</groupId> 
    <artifactId>spring-data-jpa</artifactId> 
    <version>1.9.4.RELEASE</version> 
</dependency> 
Cuestiones relacionadas