尝试启动JWS应用程序时出现NullPointerException

时间:2013-06-07 04:18:45

标签: java nullpointerexception java-web-start

我正在尝试启动位于http://gparyani.com/beatbox.jnlp的JNLP,但是当我尝试这样做时,我在内部类中得到NullPointerException:

java.lang.NullPointerException
    at com.sun.deploy.security.SandboxSecurity.showSandboxDialog(Unknown Source)
    at com.sun.deploy.security.SandboxSecurity.checkSignedSandboxSecurity(Unknown Source)
    at com.sun.deploy.security.SandboxSecurity.isPermissionGranted(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source)
    at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
    at com.sun.javaws.Launcher.launch(Unknown Source)
    at com.sun.javaws.Main.launchApp(Unknown Source)
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
    at com.sun.javaws.Main.access$000(Unknown Source)
    at com.sun.javaws.Main$1.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

这是JNLP:

<jnlp spec="1.0+" codebase="http://gparyani.com/">
  <information>
    <title>BeatBox</title>
    <vendor>Gaurav Paryani, Nick Hoang, and Harrison Qi</vendor>
    <offline-allowed/>
  </information>
  <update check="background" policy="prompt-run"/>
  <resources>
    <j2se version="1.7+"/>
    <jar href="beatbox.jar" main="true"/>
  </resources>
  <application-desc main-class="com.gparyani.beatbox.GUIMaker"/>
</jnlp>

这里有什么问题?

2 个答案:

答案 0 :(得分:6)

当然不是最有用的错误信息。

我能够通过修复代码库网址来解决这个问题。您的实际代码托管在:

http://www.rohitleena.com/gparyani/

但是JNLP文件中的代码库是:

http://gparyani.com/

总之,修复方法是将JNLP文件中的jnlp元素修改为:

<jnlp spec="1.0+" codebase="http://www.rohitleena.com/gparyani/">

这被Janela检测为警告,可能会帮助您将来调试这些问题。

通过将代码库更改为第一个URL,NullPointerException消失了。我怀疑是它正在尝试使用证书验证URL,并且在尝试确定需要验证哪个URL时,证书验证会变得混乱。

修复此问题会超过NullPointerException并立即抛出另一个异常,但这似乎是一个不同的问题(您的应用程序请求更改默认运行时处理程序而无权执行此操作)。

答案 1 :(得分:0)

不确定Java中的错误,在许多博客上发现了这个文本。 我怎么解决这个问题: 我能够使用相同的Java版本在WinXP机器中启动名为“WinXp-32bit-101”的其他Jenkins从属节点。但我为Win7机器创建的其他节点名为“win7-64bit - 113”我无法在Win7机器上启动同样的错误。 我在WinXp机器上尝试了同样的启动并得到了同样的错误。 我也尝试在win7机器上启动旧节点“WinXp-32bit-101”并在那里工作。

这意味着错误不适用于Java,即使Windows操作系统版本与两台机器中的错误相同也是如此。

解决方案: 我只比较了两个节点的配置差异,并删除了名称中的空格。 从“win7-64bit - 113”到“win7-64bit-113”

并且有效。

这对其他人也有帮助