我有一个Java 8项目,可以创建大约12个JNLP应用程序。我已成功在Windows上构建并运行它们。 JNLP通过javaws
正确启动。然后我通过FTP(在二进制模式下)将它作为.tar传输到Solaris机器,我的SA通过Tomcat进行部署。
当我访问URL以通过网络启动JNLP时,我收到应用程序错误。
例外是:
com.sun.deploy.net.FailedDownloadException: Unable to load resource: https://example.com/webstartdev10g/dev/apps/libs/xerces.jar
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Wrapped Exception是:
java.util.zip.ZipException: invalid entry size (expected 19075 but got 11917 bytes)
at java.util.zip.ZipOutputStream.closeEntry(ZipOutputStream.java:287)
at java.util.zip.ZipOutputStream.finish(ZipOutputStream.java:360)
at java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:238)
at java.util.zip.ZipOutputStream.close(ZipOutputStream.java:377)
at com.sun.deploy.net.HttpDownloadHelper.download(Unknown Source)
at com.sun.deploy.cache.Cache.downloadResourceToTempFile(Unknown Source)
at com.sun.deploy.cache.Cache.downloadResourceToCache(Unknown Source)
at com.sun.deploy.net.DownloadEngine.actionDownload(Unknown Source)
at com.sun.deploy.net.DownloadEngine.downloadResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.deploy.cache.ResourceProviderImpl.getResource(Unknown Source)
at com.sun.javaws.LaunchDownload$DownloadTask.call(Unknown Source)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
依赖于xerces的所有JNLP应用程序都有同样的错误。不需要xerces的应用似乎工作正常。我检查了xerces.jar文件在我的Windows机器和Solaris机器上的大小是否相同。我直接访问了https://example.com/webstartdev10g/dev/apps/libs/xerces.jar
并能够下载该文件并将其打开。我甚至用下载的版本替换了我的本地副本,并在本地运行应用程序而没有任何错误。基于此,看起来文件实际上没有任何问题。
有什么想法可以帮助我缩小范围吗?
修改
我打开了javaws -verbose
标志,以获取有关当我使用下载的jar在本地启动JNLP时发生的情况的更多详细信息。事实证明,我 am 仍然会收到错误,但它并没有阻止应用程序启动。它只是以静默方式登录到控制台,列出了不同的大小。
java.util.zip.ZipException: invalid entry size (expected 19075 but got 16384 bytes)
我还不确定这个文件是如何出现这个问题的,或者为什么它在两台机器上都报告自己的大小相同。
答案 0 :(得分:0)
我重建,转发并重新部署了这些应用。他们似乎现在正在工作。我仍然对症状是如何呈现自己感到困惑,并且对任何发生的事情的理论感兴趣(除了“文件在转移过程中被某种程度上损坏”)。
在任何情况下,使用javaws -verbose
帮助我获得有关该问题的一些线索,并重新部署tar文件解决了该问题。