2011-10-20 57 views
8

He estado utilizando Spring JDBC con gran éxito, pero estoy teniendo muchos problemas con este proyecto. Voy a publicar los enlaces de código aquí (es sólo un proyecto pequeño y tonto para probar si puedo conseguirlo en funcionamiento para que pueda utilizar Hibernate en el futuro):Problemas con Spring Hibernate

archivo xml: http://codepaste.net/uw19zc

main-file: http://codepaste.net/iks1cp

consigo toneladas de errores como

[Fatal Error] bean2.out.xml:1:1: Premature end of file. 
13:21:39,471 FATAL [main] Main - getAssociatedStylesheets failed 

y no he creado el archivo a.out.xml.

+1

registrar el XML y el error que está recibiendo en su pregunta por favor –

Respuesta

41

Este error se debe a un análisis incorrecto del archivo xml. Usando Eclipse para validar que da el error:

cvc-complex-type.2.3: Element 'beans' cannot have character [children], because the type's content type is element-only.

Parece que hay algún carácter extraño en medio de una o muchas de esas declaraciones <bean>. ¿Has copiado este texto de otro lugar?

Elimine todos los espacios y los caracteres de nueva línea entre las definiciones <bean> y vuelva a colocarlos con su editor.

ACTUALIZACIÓN copia & pegar en Notepad ++ el texto en el codepaste que ya ha proporcionado, y establecer el juego de caracteres UTF-8 mostró estos caracteres en las líneas en blanco: XA0. Esta es la traducción estándar de Unicode para &nbsp;. Esta es probablemente la causa de este problema.

Esto valida bien para mí:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
         http://www.springframework.org/schema/beans/spring-beans.xsd"> 
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" 
     destroy-method="close"> 
     <property name="driverClassName" value="com.mysql.jdbc.Driver" /> 
     <property name="url" value="jdbc:mysql://localhost:3306/HibernateDB" /> 
     <property name="username" value="HibernateDB" /> 
     <property name="password" value="java" /> 
    </bean> 
    <bean id="sessionFactory" 
     class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 
     <property name="dataSource" ref="dataSource" /> 
     <property name="configurationClass" value="org.hibernate.cfg.AnnotationConfiguration" /> 
     <property name="annotatedClasses"> 
      <list> 
       <value>hdao.HibernateObject</value> 
      </list> 
     </property> 
    </bean><bean id="springHibernateOperator" class="hdao.SpringHibernateOperatorImplementation"> 
     <property name="sessionFactory" ref="sessionFactory" /> 
    </bean> 
</beans> 
+0

¡Gran respuesta! Aunque ahora algo extraño sucedió. Cuando mi método principal intenta instalar ClassPathXmlApplicationContext obtengo excepciones: Excepción en el hilo "main" org.springframework.beans.factory.BeanCreationException: Error al crear bean con el nombre 'sessionFactory' definido en el recurso de ruta de clase [bean2.xml]: Invocación del método init falló; la excepción anidada es java.lang.NoClassDefFoundError: javax/persistence/Cacheable No entiendo por qué, ¿no he escrito correctamente el archivo xml? –

+0

Se discute el mismo error [aquí] (http://www.coderanch.com/t/509836/ORM/java/Hibernate-java-lang-ClassNotFoundException-javax). Asegúrate de tener el [hibernate-jpa-2.0-api-1.0.0.Final] (http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api/1.0 .0.Final) jar en tus classpath/maven dependencias. Esta clase también está presente en [Java EE 6 api jar] (http://repo1.maven.org/maven2/javax/javaee-api/6.0/javaee-api-6.0.jar).Además, es posible que desee aceptar esta respuesta y publicar otra pregunta con respecto a este asunto. –

+0

Tiene razón, lo resolví, pero aceptaré la respuesta, gracias =) –

7

Si está en Linux, utilice cat -v file-name.xml para detectar caracteres especiales "invisibles" como 'M-BM' en el archivo XML

2

A veces hay caracteres ocultos en dependencias o algunas definiciones de beans, que copia desde el sitio web de algún tutorial. mejor manera de descubrir los personajes ocultos hacen un `

ctrl + shift + F

esto va a dar formato al documento y se puede ver que el personaje oculto en medio de alguna etiqueta `

Cuestiones relacionadas