Java 当使用jnlp启动时,Hibernate在尝试连接到db时冻结
我已经创建了一个可运行的jar,可以使用“java-jar abc.jar”或jnlp启动它:Java 当使用jnlp启动时,Hibernate在尝试连接到db时冻结,java,hibernate,jnlp,Java,Hibernate,Jnlp,我已经创建了一个可运行的jar,可以使用“java-jar abc.jar”或jnlp启动它: <?xml version="1.0" encoding="utf-8"?> <jnlp spec="6.0+" codebase="host" href="abc.jnlp"> <information> <title>abc</title> <vendor>def</vendor>
<?xml version="1.0" encoding="utf-8"?>
<jnlp
spec="6.0+"
codebase="host"
href="abc.jnlp">
<information>
<title>abc</title>
<vendor>def</vendor>
<homepage href=""/>
<description>def</description>
<description kind="short">def</description>
<icon href="images/swingset2.jpg"/>
<icon kind="splash" href="images/splash.gif"/>
<association mime-type="application-x/swingset2-file" extensions="swingset2"/>
<shortcut online="false">
<desktop/>
<menu submenu="My Corporation Apps"/>
</shortcut>
</information>
<security>
<all-permissions/>
</security>
<resources>
<j2se version="1.6+" java-vm-args="-esa -Xnoclassgc"/>
<jar href="lib/abc.jar"/>
</resources>
<application-desc />
</jnlp>
abc
def
def
def
但是,只要调用“Persistence.createEntityManagerFactory()”,应用程序就会在使用jnlp启动时冻结。“java-jar”启动的应用程序运行良好
最后一个日志输出是:
[org.hibernate.connection.driverManager连接提供者.getConnection(driverManager连接提供者.java:132)]-打开新的JDBC连接
有什么问题吗?我在同一台pc上尝试了这两种方法,甚至jnlp和JAR都位于pc上,而不是远程服务器上,因此连接应该是可以防御的。冻结时,打开JConsole并获取应用程序的线程转储。它应该提供一些关于死锁位置的提示。JConsole与JDK捆绑在一起。查看安装文件夹。可能是两种启动方式的安全模型不同。我预计JDBC的传出TCP连接将被阻止。