Исключение в спящем режиме

1

Я пытаюсь разработать динамический веб-проект в Eclipse. Я использую hibernate 3, tomcat 6. Моя веб-страница имеет простую регистрационную форму. Он принимает пользовательские данные и добавляет их в db. Я использую hibernate для выполнения этой части. Я получаю эту ошибку. Попробовали решения, заданные в некоторых подобных вопросах, но не смогли решить проблему. Ошибка, которую я получаю

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
May 23, 2014 10:20:30 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet NavigationController threw exception
org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1491)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1425)
    at com.pkg.dao.UserDAO.registeruser(UserDAO.java:58)
    at com.pkg.controller.NavigationController.doPost(NavigationController.java:60)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.dom4j.DocumentException: hibernate.sourceforge.net Nested exception: hibernate.sourceforge.net
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1481)
    ... 17 more

Файл My Customer.hbm.xml

<?xml version="1.0" encoding="UTF-8"?>

 <!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
   <class name="com.pkg.bean.CustomerBean" table="r_customer">      
      <id name="CUSTOMERID"  column="CUSTOMERID" type="String">
         <generator class="assigned"/>
      </id>      
      <property name="PASSWORD" column="PASSWORD" type="String"/>
      <property name="CUSTOMERNAME" column="CUSTOMERNAME" type="String"/>
      <property name="CONTACTNUMBER" column="CONTACTNUMBER" type="String"/>     
   </class>
</hibernate-mapping>

И с помощью конфигурационного файла hibernate

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- Database connection settings -->
        <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="connection.url">jdbc:oracle:thin:@localhost:1521:javadb</property>
        <property name="connection.username">user</property>
        <property name="connection.password">password</property>
        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>
        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.OracleDialect</property>
        <!-- Enable Hibernate automatic session context management -->
        <property name="current_session_context_class">thread</property>
        <!-- Disable the second-level cache -->
        <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
        <!-- Echo all executed SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Drop and re-create the database schema on startup -->
             <property name="hbm2ddl.auto"></property>
             <mapping resource="Customer.hbm.xml"/>

    </session-factory>
</hibernate-configuration>

Может кто-нибудь, пожалуйста, помогите мне решить проблему.

Теги:
hibernate

3 ответа

1

Изменения, которые я сделал для моего кода, чтобы заставить его работать,

В моем файле Customer.hbm.xml я изменил тип столбца с type="String" на type="string"

В файле hibernate.cfg.xml я уже создал таблицу в базе данных, поэтому я прокомментировал <property name="hbm2ddl.auto">create</property>

Проблема кажется системной, потому что код работал без каких-либо икота на моем домашнем компьютере, но показывал org.hibernate.HibernateException: Could not parse configuration: hibernate.cfg.xml ошибка на моем офисном компьютере.

Дома я использую Eclipse Kepler, Tomcat 7 и hibernate 3.6.4 Final

В офисе есть Eclipse Galileo, Tomcat 6 и hibernate 3.xx

Я не уверен, что действительно хочу решить проблему или проблему, в первую очередь.

1

У вас пусто

<property name="hbm2ddl.auto"></property>

Поместите некоторое значение там update/create.

0

Я заметил, что ваш hibernate.cfg.xml относится к Customer.hbm.xml, и этот файл относится к классу com.pkg.bean.CustomerBean. Возможно, это неверно, но это не соответствует соглашениям, поэтому я подозреваю, что там может быть проблема:

Согласно этим соглашениям, файлы hbm.xml будут храниться в том же пакете, что и их класс. Если это так, вероятно, вы должны ссылаться на него как com/pkg/bean/Customer.hbm.xml.

Другое соглашение - назвать ваши файлы с тем же именем, что и ваши файлы hbm.xml. Тогда это будет CustomerBean.hbm.xml.

Это всего лишь предположение, основанное на информации, которую вы опубликовали. Я не уверен, что любое из этих "условностей" - это правила, которые могли бы вызвать исключения, если они были сломаны (прошло много времени с тех пор, как я прочитал документы, и я обычно следую лучшим методам, поэтому я никогда не тестировал, чтобы увидеть, что произойдет, т).

  • 0
    Следующие соглашения всегда полезны. Выяснили это трудным путем. Я буду иметь это в виду при написании кода.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню