2013-11-27 40 views
0

我想用tomcat和德比一起使用jpa。但是,我收到以下消息:引起:錯誤XSDB6:Derby的另一個實例可能已經引導了數據庫隨着derby/jpa/tomcat,數據庫始終已經啓動

我的persistence.xml是類似的東西:

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 
    <persistence-unit name="contribs" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties> 
     <property name="javax.persistence.jdbc.url" value="jdbc:derby:~/contribs;create=true"/> 
     <property name="javax.persistence.jdbc.password" value="sa"/> 
     <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/> 
     <property name="javax.persistence.jdbc.user" value="sa"/> 
     <property name="eclipselink.ddl-generation" value="create-tables"/> 
    </properties> 
    </persistence-unit> 
</persistence> 

我使用的ServletContextListener,與@WebListener()註解。

contextInitialized我得到一個的EntityManagerFactory的EntityManager,我關閉所有的contextDestroyed

我看到與日誌tomcat調用兩次我的ServletContextListener(我不明白爲什麼),第二次我得到錯誤消息。

另外我使用Netbeans。

我該如何解決?謝謝。

+0

你的server.xml中有多少Host?或許多上下文映射到相同的Web應用程序? –

+0

我希望沒有:-)在我的server.xml中只有一個主機,並且我看不到任何上下文。但它是在Netbeans的東西。 – Istao

+0

我不知道NetBeans,但請檢查netbeans插件中如何配置tomcat。 –

回答

0

您是否將應用程序熱重新部署到Tomcat中? Tomcat似乎經常將Web應用程序的多個副本保存在不同的應用程序類加載器中,並且只有一個Web應用程序副本能夠一次打開Derby。

一種可能性是從嵌入式Derby版本切換到客戶端 - 服務器版本。

另一種可能性是在發生問題時重新啓動Tomcat。

+0

謝謝。這個_hot deploy_東西在哪裏?我在save_上看到_Deploy是這樣嗎? (如果是這樣,那不能解決我的問題)我正在使用Maven Web應用程序項目。 – Istao