我正在使用Netbeans IDE开发一个Java Web Start应用程序,该应用程序将从Web启动,然后使用EclipseLink JPA访问远程MySQL数据库.我正在使用Swing应用程序框架来管理我的应用程序的生命周期.
当我从Netbeans启动应用程序时,我的应用程序加载大约需要7秒钟,但是当我使用Netbeans IDE创建Web Start分发包(包含JAR和JNLP文件)时,启动大约需要60秒.此外,每次启动应用程序时,"验证应用程序"/"下载应用程序"进度条窗口似乎都会运行,即使已经缓存了它的副本.
从用户的角度来看,首先看到我的启动画面1到2秒,然后"验证应用程序"/"下载应用程序"进度条窗口持续5到20秒,然后在应用程序启动前40秒内没有任何内容.
编写应用程序代码,以便它应该在JPA开始加载持久性单元之前显示自己(所以我怀疑这是问题),但我想我会提到它以防万一.
更新:方法createEntityManagerFactory使用Web Start缓慢
进一步研究后,我发现当我从Netbeans运行应用程序或者当我远程登录到我的服务器时,方法createEntityManagerFactory--这是EclipseLink连接到MySQL所必需的 - 大约需要5秒钟才能执行在那里启动JNLP,但是当我通过网络运行应用程序时,同一行需要35秒(大大延迟启动).有趣的是,随着我的互联网连接速度变差,这一次变得更糟.下面是我正在使用的JNLP文件的副本.
有谁知道可能导致这种延迟的原因是什么?
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
Run Code Online (Sandbox Code Playgroud)
MyApp我的应用程序供应商我的应用程序描述MyApp