2011-10-20 16 views
8

Spring JDBC'yi büyük bir başarı ile kullanıyorum ancak bu projeyle ilgili bir sürü sorun yaşıyorum. Burada kod bağlantıları göndeririz (alabilirim eğer test etmek için sadece küçük ve aptal bir proje o kadar ve gelecekte Hibernate kullanabilmesi çalıştıran):Bahar Hazırda Bekletme'yi kullanma sorunları

xml dosyası: http://codepaste.net/uw19zc

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

böyle

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

olarak hataların ton olsun ve ben a.out.xml dosyası oluşturmadınız.

+1

xml sonrası etiketi ile yanlışı o gizli karakteri görebilirsiniz seçeneğini soru lütfen –

cevap

41

Bu hata, xml dosyasının yanlış ayrıştırılmasından kaynaklanmaktadır. Bunu doğrulamak için Eclipse kullanmak hata veriyor:

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

birine veya bu <bean> bildirimleri birçok arasında bazı garip karakter olduğu görülmektedir. Bu metni başka bir yerden kopyaladın mı?

Tüm boşlukları ve satırsonu karakterlerini <bean> tanımları arasında kaldırın ve bunları düzenleyicinize geri koyun. xA0:

GÜNCELLEME Kopyalama not defteri ++ Sağladığınız codepaste metin ve UTF-8'e karakterseti seçimi içine & yapıştırma boş satırlar bu karakterleri gösterdi. Bu, &nbsp; için standart Unicode çeviri. Bu sorunun sebebi muhtemelen budur.

Bu benim için ok doğrular:

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

Harika cevap! Şimdi garip bir şey olmasına rağmen. Benim ana yöntem ClassPathXmlApplicationContext benimsemeye çalıştığında ben istisnalar olsun: "ana" iş parçacığında özel durum org.springframework.beans.factory.BeanCreationException: Sınıf yolu kaynağında [bean2.xml] tanımlı 'sessionFactory' adı ile fasulye oluşturulurken hata oluştu: Invocation init yönteminin başarısız olması; iç içe istisna java.lang.NoClassDefFoundError: javax/persistence/Önbelleğe alınabilir Neden anlamıyorum, xml dosyasını doğru yazmamış mıyım? –

+0

Aynı hata tartışıldı [burada] (http://www.coderanch.com/t/509836/ORM/java/Hibernate-java-lang-ClassNotFoundException-javax). [Hibernate-jpa-2.0-api-1.0.0.Final] olduğundan emin olun (http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api/1.0 .0.Final) classpath/maven bağımlılıklarınızdaki jar. Bu sınıf ayrıca [Java EE 6 api kavanozunda] bulunmaktadır (http://repo1.maven.org/maven2/javax/javaee-api/6.0/javaee-api-6.0.jar).Ayrıca, bu cevabı kabul etmek ve bu konuyla ilgili başka bir soru göndermek isteyebilirsiniz. –

+0

Doğru, ben çözdüm ama cevabı kabul ediyorum, teşekkürler =) –

2

Bazen orada xml dosyasında 'M-BM-' gibi özel "görünmez" karakterlerini tespit etmek için cat -v file-name.xml kullanmak Bazı öğreticilerin web sitesinden kopyaladığınız bağımlılıklar veya bazı fasulye tanımlarındaki gizli karakterler. En iyi yolu bu gizli karakterler yapmak öğrenmek için bir `

ctrl + shift + F

bu belgenizi biçimlendirir ve size de alıyorsanız bazı `