相同的 Webstart JAR,不同应用程序服务器上的 JNLP ClassNotFoundException
The same Webstart JAR, JNLP on diffrerent App Servers ClassNotFoundException
我遇到过那个问题。我在 WebSphere7 server1 上的 webstart 运行良好。我已经在另一台服务器上复制了 myapp.jar
和 myapp.jnlp
2。
只有 codebase=
和 <jar href=
被修改。
但我得到(无法):
java.lang.ClassNotFoundException: com.mypack.swt.EntryPoint
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
这是 JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://corp.com/webapp/jnlp">
<information>
<title>My App</title>
<vendor>Foo</vendor>
<homepage href="http://corp.com" />
<description>My App</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always" />
<resources>
<j2se version="1.6+" initial-heap-size="512m" max-heap-size="1024m"/>
<property name="par1" value="val1"/>
<jar href="http://corp.com/webapp/jnlp/myapp.jar"/>
</resources>
<application-desc main-class="com.mypack.swt.EntryPoint">
</application-desc>
</jnlp>
这是一个带有 jar、sign、shade 插件的 maven 项目..我试图重建,但没有帮助..
能否请你帮我找到正确的方法来定位问题..
谢谢。
p.s。我发现的一个区别是第二台服务器 2 上没有文件夹遍历。
p.p.s。感觉没有下载发生,但是如果我更改jar-file name resource not found excpt出现..
编辑
我发现从第二台服务器 2 下载资源 jat 非常小 - 几千字节,而第一台服务器 1 正常工作时需要 12 兆字节。我已经在 Java 临时文件视图控制台中找到了。
那么...它是否破坏了 jar 资源下载负载?
如果存在早期版本的 jar,请尝试清除 java 缓存一次,然后它不会从 jnlp webstart 下载。还要检查服务器 2 上的写权限,最好是在下载 jar 的地方,那个目录应该有写权限。
已解决!
我晚上突然想到了)
我已经分析了获取 WebStart 时的操作顺序。
首先下载 .jnlp 文件。它应该是有效的并且可以下载。然后,在我的例子中 Chrome,建议操作 - 打开或保存 .jnlp 文件。然后我点击打开。发生了什么事 - Windows 查看扩展名和 运行 带有适当 exe 的文件。这是 javaw.exe,它解析 .jnlp 文件并尝试下载到资源 .jar。
但是!我的 .jar 资源文件位于网络 的安全部分! javaw 未授权。
javaw 得到“401-un-authorized.html”并且无法在其中找到任何主要 class。html)))
所以,这就是为什么我在 java 缓存中看到非常小的应用程序!
谢谢大家!
我遇到过那个问题。我在 WebSphere7 server1 上的 webstart 运行良好。我已经在另一台服务器上复制了 myapp.jar
和 myapp.jnlp
2。
只有 codebase=
和 <jar href=
被修改。
但我得到(无法):
java.lang.ClassNotFoundException: com.mypack.swt.EntryPoint
at java.net.URLClassLoader.findClass(Unknown Source)
at com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
at com.sun.javaws.Launcher.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
这是 JNLP:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://corp.com/webapp/jnlp">
<information>
<title>My App</title>
<vendor>Foo</vendor>
<homepage href="http://corp.com" />
<description>My App</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always" />
<resources>
<j2se version="1.6+" initial-heap-size="512m" max-heap-size="1024m"/>
<property name="par1" value="val1"/>
<jar href="http://corp.com/webapp/jnlp/myapp.jar"/>
</resources>
<application-desc main-class="com.mypack.swt.EntryPoint">
</application-desc>
</jnlp>
这是一个带有 jar、sign、shade 插件的 maven 项目..我试图重建,但没有帮助..
能否请你帮我找到正确的方法来定位问题.. 谢谢。
p.s。我发现的一个区别是第二台服务器 2 上没有文件夹遍历。 p.p.s。感觉没有下载发生,但是如果我更改jar-file name resource not found excpt出现..
编辑
我发现从第二台服务器 2 下载资源 jat 非常小 - 几千字节,而第一台服务器 1 正常工作时需要 12 兆字节。我已经在 Java 临时文件视图控制台中找到了。 那么...它是否破坏了 jar 资源下载负载?
如果存在早期版本的 jar,请尝试清除 java 缓存一次,然后它不会从 jnlp webstart 下载。还要检查服务器 2 上的写权限,最好是在下载 jar 的地方,那个目录应该有写权限。
已解决!
我晚上突然想到了)
我已经分析了获取 WebStart 时的操作顺序。
首先下载 .jnlp 文件。它应该是有效的并且可以下载。然后,在我的例子中 Chrome,建议操作 - 打开或保存 .jnlp 文件。然后我点击打开。发生了什么事 - Windows 查看扩展名和 运行 带有适当 exe 的文件。这是 javaw.exe,它解析 .jnlp 文件并尝试下载到资源 .jar。
但是!我的 .jar 资源文件位于网络 的安全部分! javaw 未授权。
javaw 得到“401-un-authorized.html”并且无法在其中找到任何主要 class。html))) 所以,这就是为什么我在 java 缓存中看到非常小的应用程序!
谢谢大家!