2011-10-20 35 views
8

Tôi đã sử dụng Spring JDBC với thành công lớn nhưng tôi gặp rất nhiều rắc rối với dự án này. Tôi sẽ đăng các liên kết mã ở đây (nó chỉ là một dự án nhỏ và ngớ ngẩn để thử nghiệm nếu tôi có thể có được nó lên và chạy vì vậy mà tôi có thể sử dụng Hibernate trong tương lai):Các vấn đề khi sử dụng Spring Hibernate

xml-file: http://codepaste.net/uw19zc

chính-file: http://codepaste.net/iks1cp

tôi nhận được tấn lỗi như

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

và tôi chưa tạo tập tin a.out.xml.

+1

đăng xml và lỗi mà bạn đang nhận được ở bạn câu hỏi xin vui lòng –

Trả lời

41

Lỗi này là do phân tích cú pháp không chính xác tệp xml. Sử dụng Eclipse để xác nhận nó mang lại cho các lỗi:

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

Có vẻ như một số nhân vật kỳ lạ ở giữa một hoặc nhiều trong số những <bean> tờ khai. Bạn đã sao chép văn bản này từ một nơi khác?

Xóa tất cả dấu cách và ký tự dòng mới giữa các định nghĩa <bean> và đặt chúng trở lại với trình chỉnh sửa của bạn.

CẬP NHẬT sao chép & dán vào notepad ++ văn bản trong codepaste mà bạn cung cấp, và thiết lập charset UTF-8 cho thấy những ký tự ở dòng trống: xA0. Đây là bản dịch Unicode chuẩn cho &nbsp;. Đây có thể là nguyên nhân của vấn đề này.

này xác nhận ok cho tôi:

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

Câu trả lời tuyệt vời! Mặc dù bây giờ một cái gì đó kỳ lạ đã xảy ra. Khi phương pháp chính của tôi cố gắng instatiate ClassPathXmlApplicationContext tôi nhận được ngoại lệ: Ngoại lệ trong chủ đề "main" org.springframework.beans.factory.BeanCreationException: Lỗi tạo bean với tên 'sessionFactory' được định nghĩa trong tài nguyên đường dẫn lớp [bean2.xml]: Invocation của phương thức init không thành công; ngoại lệ lồng nhau là java.lang.NoClassDefFoundError: javax/persistence/Cacheable Tôi không hiểu tại sao, không phải tôi đã viết tệp xml đúng chưa? –

+0

Lỗi tương tự được thảo luận [ở đây] (http://www.coderanch.com/t/509836/ORM/java/Hibernate-java-lang-ClassNotFoundException-javax). Đảm bảo bạn có [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 trong classpath/maven phụ thuộc của bạn. Lớp này cũng có mặt trong [Java EE 6 api jar] (http://repo1.maven.org/maven2/javax/javaee-api/6.0/javaee-api-6.0.jar).Ngoài ra, bạn có thể muốn chấp nhận câu trả lời này và đăng một câu hỏi khác về vấn đề này. –

+0

Bạn đúng, tôi đã giải quyết nó nhưng tôi sẽ chấp nhận câu trả lời, thanks =) –

7

Nếu bạn đang ở trong linux, sử dụng cat -v file-name.xml để phát hiện ký tự đặc biệt "vô hình" như 'M-BM-' trong file xml của bạn

2

Đôi khi có những các ký tự ẩn trong các phụ thuộc hoặc một số định nghĩa bean, mà bạn sao chép từ trang web của một số hướng dẫn. Cách tốt nhất để tìm hiểu những nhân vật ẩn làm một '

ctrl + shift + F

này sẽ định dạng tài liệu của bạn và bạn có thể thấy rằng nhân vật ẩn trong giữa một số thẻ '

Các vấn đề liên quan