Java持久化API : Glassfish tries to use derby instead of MySQL?

标签 java mysql jpa glassfish derby

我为 glassfish Web 应用程序编写了以下 persistence.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<persistence 
    xmlns="http://java.sun.com/xml/ns/persistence" 
    version="2.1">

   <persistence-unit name="mypu" transaction-type="RESOURCE_LOCAL">
     <description>my</description>
     <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
     <class>my.OntClass</class>

     <properties>

       <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/user_lindenb"/>
       <property name="javax.persistence.jdbc.user" value="appuser"/>
       <property name="javax.persistence.jdbc.password" value="apppassword"/>
       <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
       <property name="eclipselink.weaving" value="false"/><!--  http://java.dzone.com/articles/jpa-performance-optimization -->
        <property name="eclipselink.target-database" value="MySQL"/>
        <property name="eclipselink.logging.level" value="ALL"/>
        <property name="eclipselink.logging.parameters" value="false"/>
     </properties>
   </persistence-unit>

</persistence>

MySQL 服务器正在运行,我可以使用以下命令从 servlet 连接到 MySQL 服务器:

@Resource (name="jdbc/MysqlDS" )
javax.sql.DataSource mysqlDS;

现在,我想使用持久性 API。但是当我想部署我的应用程序时,它会引发以下错误:

remote failure: Error occurred during deployment: Exception while preparing the app : Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Internal Exception: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.

据我了解,它尝试连接到 Derby 而不是 MySQL?

glassfish log:
(...) 
Caused by: org.apache.derby.client.am.DisconnectException: java.net.ConnectException : Error connecting to server localhost on port 1527 with message Connection refused.
    at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
    at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
    at org.apache.derby.client.am.Connection.initConnection(Unknown Source)
    at org.apache.derby.client.am.Connection.<init>(Unknown Source)
    at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
    at org.apache.derby.client.net.NetConnection40.<init>(Unknown Source)
    at org.apache.derby.client.net.ClientJDBCObjectFactoryImpl40.newNetConnection(Unknown Source)
    at org.apache.derby.jdbc.ClientDataSource.getConnectionX(Unknown Source)
    ... 71 more
Caused by: java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:579)
    at java.net.Socket.connect(Socket.java:528)
    at java.net.Socket.<init>(Socket.java:425)
    at java.net.Socket.<init>(Socket.java:208)
    at javax.net.DefaultSocketFactory.createSocket(SocketFactory.java:271)
    at org.apache.derby.client.net.OpenSocketAction.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    ... 79 more
(...)

我该如何解决这个问题?

谢谢。

最佳答案

已替换

 <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

 <jta-data-source>jdbc/MysqlDS</jta-data-source>

现在似乎可以工作了...

关于Java持久化API : Glassfish tries to use derby instead of MySQL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31835918/

相关文章:

java - 线程安全的 Spring 数据删除

mysql - 使用 Mysql 5.6.11 安装 Bugzilla 4.2.5

java - 使用 yum 在 CentOS 上安装 OpenJDK 11

java - 是否可以使用正则表达式获取前 n 个字符但仅以整个单词结尾?

php - WHERE之后可以在Mysql查询中使用变量吗

php - 隐藏数据库ID

java - 查询语法异常 : Unexpected token *

java - spring mvc 日期格式,格式为 :input

java - JPA 问题 : Unable to build entity manager factory

java - 为什么需要在 JLabel 中重置 setText() 以防止错误?