2011-10-20 15 views
8

Ho usato Spring JDBC con grande successo ma ho molti problemi con questo progetto. Vi posto i link codice qui (è solo un piccolo e stupido progetto per verificare se posso ottenere installato e funzionante in modo che posso usare Hibernate in futuro):Problemi durante l'utilizzo di Spring Hibernate

file XML: http://codepaste.net/uw19zc

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

ricevo tonnellate di errori come

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

e non ho creato il file a.out.xml.

+1

inviare il codice XML e l'errore che hai trovato nella tua domanda per favore –

risposta

41

Questo errore è dovuto all'analisi non corretta del file xml. Utilizzo Eclipse per convalidare dà l'errore:

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

Sembra che ci sia un po 'strano personaggio tra una o molte di quelle <bean> dichiarazioni. Hai copiato questo testo da qualche altra parte?

Rimuovere tutti gli spazi e i caratteri di nuova riga tra le definizioni <bean> e reinserirli con l'editor.

UPDATE copia & incollatura in Notepad ++ il testo nel codepaste hai fornito, e impostando il set di caratteri UTF-8 ha mostrato questi personaggi nelle righe vuote: xA0. Questa è la traduzione Unicode standard per &nbsp;. Questa è probabilmente la causa di questo problema.

Questa convalida ok per me:

<?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

Ottima risposta! Anche se ora è successo qualcosa di strano. Quando il mio metodo principale cerca di instaziare ClassPathXmlApplicationContext ottengo eccezioni: Eccezione nel thread "main" org.springframework.beans.factory.BeanCreationException: Errore nel creare bean con nome "sessionFactory" definito nella risorsa del percorso di classe [bean2.xml]: Invocazione del metodo init fallito; l'eccezione annidata è java.lang.NoClassDefFoundError: javax/persistence/Cacheable Non capisco perché, non ho scritto correttamente il file xml? –

+0

Lo stesso errore è discusso [qui] (http://www.coderanch.com/t/509836/ORM/java/Hibernate-java-lang-ClassNotFoundException-javax). Assicurati di avere il [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.Finale) nelle dipendenze classpath/maven. Questa classe è presente anche in [Java EE 6 api jar] (http://repo1.maven.org/maven2/javax/javaee-api/6.0/javaee-api-6.0.jar).Inoltre, potresti voler accettare questa risposta e pubblicare un'altra domanda in merito. –

+0

Hai ragione, l'ho risolto, ma accetterò la risposta, grazie =) –

7

Se siete in Linux, usare cat -v file-name.xml per rilevare particolari personaggi "invisibili" come 'M-BM-' nel file XML

2

a volte ci sono caratteri nascosti nelle dipendenze o alcune definizioni di bean, che copi dal sito web di alcuni tutorial. miglior modo per scoprire questi personaggi nascosti fanno un `

ctrl + shift + F

questo sarà formattare il documento e si può vedere che personaggio nascosto tra alcuni tag `

Problemi correlati