当用于远程连接时,我的持久性单元固定到峡湾

时间:2011-03-29 12:42:18

标签: java persistence database-connection persistence-unit

虽然我确实设法通过“服务”netbeans选项卡连接到我的数据库,但我的应用程序持久性单元似乎无法正常工作...它似乎无处不在“等一下,也许我们会连接你以后......“循环。

问题1:为什么不起作用?

问题2(如果没有理由1):我如何制作一个小型的解决方案?


这是我的持久单位声明:

entityManager = java.beans.Beans.isDesignTime() ? null : javax.persistence.Persistence.createEntityManagerFactory(resourceMap.getString("entityManager.persistenceUnit")).createEntityManager();

resourceMap.getString("entityManager.persistenceUnit")只允许我访问定义我的持久性单元的属性字段。

这是我的persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="analyses_2PU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>analysesmanager.Produits</class>
    <class>analysesmanager.Lots</class>
    <class>analysesmanager.SpecProduits</class>
    <class>analysesmanager.Parametres</class>
    <class>analysesmanager.Clients</class>
    <class>analysesmanager.Resultats</class>
    <class>analysesmanager.Analyses</class>
    <properties>
      <property name="toplink.jdbc.user" value="XXXXX"/>
      <property name="toplink.jdbc.password" value="XXX"/>
      <property name="toplink.jdbc.url" value="jdbc:mysql://172.17.22.15:3306/soliance_analyses"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
    </properties>
  </persistence-unit>
</persistence>

虽然这对我的远程mysql服务器不起作用,但它可以在我的本地服务器上使用数据库的本地副本...

唯一的区别在于这2行......

<property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/soliance_analyses"/>

<property name="toplink.jdbc.url" value="jdbc:mysql://172.17.22.15:3306/soliance_analyses"/>

顺便说一下,直接在远程服务器上运行我的本地版本确实有效...这似乎是网络(无法解决)的问题,或者是用于远程连接的persistence.xml。

1 个答案:

答案 0 :(得分:0)

小型解决方案:

我已将我的项目本地版本放在远程服务器上,现在我通过.bat在远程服务器上本地运行它。

这是ROFLMAO_it_works.bat

net use X: \\remote_server_ip\project_jar_path
X:
java -jar X:\project.jar

有效。不是我一开始想要的方式,但它有效。