在不同的App Server ClassNotFoundException上使用相同的Webstart JAR,JNLP

时间:2017-04-28 08:44:21

标签: java websphere classnotfoundexception java-web-start jnlp

我遇到过这个问题。我在WebSphere7 server1上运行良好的webstart。我已将myapp.jarmyapp.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,标志,阴影插件的maven项目..我试图重建,但它没有帮助..

请你帮我找到找到问题的正确方法。 感谢。

P.S。我发现的一个区别是第二台服务器2上没有文件夹遍历。 p.p.s.感觉就像没有下载一样,但如果我更改jar文件名资源,则找不到excpt出现..

修改

我发现从第二台服务器2下载资源jat非常小 - 在工作良好的第一台服务器1的情况下,对于12字节的情况下需要几千字节。我已经在Java临时文件视图控制台中找到了。 那么......是否破坏了jar资源的负载?

2 个答案:

答案 0 :(得分:0)

如果存在早期版本的jar,请稍后尝试清除java缓存,然后不会从jnlp webstart下载。并且还检查服务器2上的写权限,最好是下载jar,dir应该具有写权限。

答案 1 :(得分:0)

解决了!

夜晚来到我的想法

我在获取WebStart时分析了行动的顺序。

首先下载.jnlp文件。它应该是有效的,可用于下载。然后,在我的情况下Chrome,建议操作 - 打开或保存.jnlp文件。然后我点击打开。发生了什么 - Windows查看扩展并使用适当的exe运行文件。这是javaw.exe,它解析.jnlp文件并尝试下载到资源.jar。

但是!我的.jar 资源文件位于网络中的安全部分!并且javaw是未经授权的。

javaw get&#34; 401-un-authorized.html&#34;并且找不到任何主要类.html))) 那么,这就是为什么我在java缓存中看到非常小的app!

谢谢你们!