私は現在面白い問題が発生しています。VaadinとHibernate - データベースへの接続を正しく閉じる
私の状況:
- 私は現在
- (私はEclipseでJAVAを使用したプログラミングのためのVAADINを使用しています)は、Webサービスを開発しています後ろの私のデータベースは、私が使用していたJavaダービー
- です私は現在のTomcat V7.0上で、それを展開しています
- 私のデータベースのために冬眠
私の問題:私は(何を重要ではありません)私のコードで何かを変更すると
- 、サーバーが再起動されているのを必要とせず、それをリロードする必要があります - 私はそれが全体的に予想される動作
- だと思いますサーバーはアプリケーションの成功をリロードしますが、何かをクリックしようとすると(リロード後に)、例えばログイン-ボタン、私はエラー
エラーメッセージを取得:
原因:org.hibernate.exception.GenericJDBCException:別のインスタンス:根本原因エラーXSDB6と 接続]を開くことができませんでしたがDerbyの は既にデータベースC:\ HTML-Ausgabe \ database \ DocumentDBを起動している可能性があります。 org.apache.derby.iapi.error.StandardException.newException(不明 出典)で ...この
上
私の考えに思えその何とかリロードプロセスの接続/
を/クローズ破壊しますdoesntの休止状態とサーバーがデータベースへの再接続しようとしたときにエラーがoccuresマイコードするコンテキスト210
私は休止状態リスナーと呼ばれるクラス、持っている:
public class HibernateListener implements ServletContextListener {
public void contextInitialized(ServletContextEvent event) {
HibernateUtil.getSessionFactory(); // Just call the static initializer of that class
}
public void contextDestroyed(ServletContextEvent event) {
HibernateUtil.getSessionFactory().close(); // Free all resources
}
}
私はhibernate.cfg.xml:私は "リスナー" を追加した
<?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>
<property name="hibernate.connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="hibernate.connection.url">jdbc:derby:C:\HTML-Ausgabe\database\DocumentDB;create=true</property>
<property name="hibernate.dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.hbm2ddl.auto">create-drop</property>
<property name="hibernate.show_sql">true</property>
<mapping class="view.model.database.User"/>
<mapping class="view.model.database.Document"/>
<mapping class="view.model.database.Version"/>
<mapping class="view.model.database.VersionData"/>
</session-factory>
</hibernate-configuration>
マイ(VAADIN)のweb.xmlを、私は、研究をしました(まだ1つも答えずに:()Hibernateのフォーラムにも掲載され、現在、このワットに一致するテーマを見つけることができませんでした
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Bachelorprojekt</display-name>
<context-param>
<description>Vaadin production mode</description>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>
<servlet>
<servlet-name>Bachelorprojekt Application</servlet-name>
<servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
<init-param>
<description>Vaadin application class to start</description>
<param-name>application</param-name>
<param-value>view.view.WebsiteFrame</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Bachelorprojekt Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>view.model.database.HibernateListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
:アッパーHibernateListenerを(リスナーのテキストを確認してください)に示しますebsite。だから私は間違ったことをしなかったことを願っています。
あなたの誰かが何とか私を助けてくれたら、本当にうれしいです。現在、私はこのエラーが発生するのを止めるために何を変えるべきかを知らない。もちろん、1行のコードを変更すると、アプリケーションがインターネットに接続されているときに、後でサーバー全体を再起動することはできません。
すべての回答に感謝し、あなたが私と共有していると思いました。
そう、私はHyperSQLを使用していますが、私は開発中にインメモリDBが必要です。決して私に問題を与えたことはありません。 – anataliocs