【问题标题】:With derby/jpa/tomcat, the database is always already booted使用 derby/jpa/tomcat,数据库总是已经启动
【发布时间】: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


【解决方案1】:

您是否正在将应用程序热重新部署到 Tomcat 中? Tomcat 似乎经常在不同的应用程序类加载器中运行 Web 应用程序的多个副本,并且一次只有一个 Web 应用程序副本能够打开 Derby。

一种可能性是从 Derby 的嵌入式版本切换到客户端-服务器版本。

另一种可能是出现问题时重启Tomcat。

【讨论】:

  • 谢谢。这个 hot deploy 东西在哪里?我看到 Deploy on save 是这样吗? (如果是这样,那并不能解决我的问题)我正在使用一个 Maven Web 应用程序项目。
猜你喜欢
  • 2014-05-27
  • 2015-09-26
  • 2017-12-06
  • 2017-05-15
  • 2016-03-31
  • 2014-07-18
  • 1970-01-01
  • 1970-01-01
  • 2012-09-21
相关资源
最近更新 更多