【发布时间】:2013-12-13 17:47:30
【问题描述】:
我正在尝试将 jpa 与 tomcat 和 Derby 一起使用。但我收到这条消息:原因:ERROR XSDB6:另一个 Derby 实例可能已经启动了数据库。
我的 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 上关闭所有。 p>
我看到日志 tomcat 调用了两次我的 ServletContextListener(我不明白为什么),第二次收到错误消息。
我也使用 Netbeans。
我该如何解决?谢谢。
【问题讨论】:
-
你的 server.xml 中有很多 Host 吗?还是多个 Context 映射到同一个 Web 应用程序上?
-
我希望没有:-) 在我的 server.xml 中只有一个主机,我看不到上下文。但它在 Netbeans 上。
-
我不知道 NetBeans,但是请检查您的 netbeans 插件中的 tomcat 是如何配置的。
标签: java tomcat jpa netbeans derby