Java WebStart从1.8_031开始偶尔使用NPE

Java WebStart从1.8_031开始偶尔使用NPE,java,nullpointerexception,java-web-start,jnlp,Java,Nullpointerexception,Java Web Start,Jnlp,我们有一个签名的Java应用程序,它通过Java WebStart分发给客户端,但从1.8_031开始,我们有时会看到一个NPE。 使用Java 1.8_031或更早版本时,应用程序始终工作正常。 同一台机器有时可以运行应用程序,有时不能。清除缓存不会影响这一点 JNLP文件如下所示: <?xml version="1.0" encoding="utf-8"?> <!-- Java Webstart JNLP File for ESKORT Clearan

我们有一个签名的Java应用程序,它通过Java WebStart分发给客户端,但从1.8_031开始,我们有时会看到一个NPE。 使用Java 1.8_031或更早版本时,应用程序始终工作正常。 同一台机器有时可以运行应用程序,有时不能。清除缓存不会影响这一点

JNLP文件如下所示:

    <?xml version="1.0" encoding="utf-8"?>

<!--
      Java Webstart JNLP File for ESKORT Clearance Workbench Application

      $Id: cwb.jnlp.template,v 1.26.2.9.2.1 2015/05/19 12:43:03 PB Exp $
-->
<jnlp codebase="http://T500-DASIM:6610/clearance" href="cwb.jnlp" spec="6.0+"> 
  <information> 
    <title>ESKORT Clearance Workbench 4.0.0.33</title>  
    <vendor>Copyright © 2014 Intrasoft International Scandinavia A/S. All rights reserved.</vendor>  
    <homepage href="http://www.intrasoft-intl.com/eskort"/>  
    <description>ESKORT Clearance Workbench 4.0.0.33</description>  
    <description kind="short">Client application for modifying the ESKORT Clearance Risk Analysis Configuration.</description>  
    <icon href="conf/ClearanceWorkbench64.jpg"/>  
    <icon href="conf/ClearanceWorkbenchSplash.jpg" kind="splash"/>  
    <related-content href="http://www.intrasoft-intl.com/eskort"/>
    <!--offline-allowed/--> 
  </information>  
  <update check="always"/>  
  <resources> 
    <j2se version="1.5+"/>  
    <jar download="eager" href="lib/clearance-workbench-4.0.jar" main="true"/>  
    <jar download="eager" href="lib/profiletestbed-client-4.0.jar" />  
    <jar download="eager" href="lib/profiletestbed-core-4.0.jar" />  
    <jar download="eager" href="lib/spring-richclient-core-1.1.0.jar" />  
    <jar download="eager" href="lib/spring-richclient-resources-1.1.0.jar" />  
    <jar download="eager" href="lib/spring-richclient-sandbox-1.1.0.jar" />  
    <jar download="eager" href="lib/spring-binding-1.0.5.jar" />  
    <jar download="eager" href="lib/looks-2.2.2.jar" />  
    <jar download="eager" href="lib/swingx-1.6.1.jar" />  
    <jar download="eager" href="lib/glazedlists_java15-1.8.0.jar" />  
    <jar download="eager" href="lib/forms-1.2.1.jar" />  
    <jar download="eager" href="lib/ebcj-4.0.jar" />  
    <jar download="eager" href="lib/all-i18n.jar" />  
    <jar download="eager" href="lib/jlfgr-1_0.jar" />  
    <jar download="eager" href="lib/swing-layout-1.0.jar" />  
    <jar download="eager" href="lib/jxlayer-3.0.4.jar" />  
    <jar download="eager" href="lib/spring.jar" />  
    <jar download="eager" href="lib/spring-webmvc.jar" />  
    <jar download="eager" href="lib/spring-security-core-2.0.4.jar" />  
    <jar download="eager" href="lib/commons-logging.jar" />  
    <jar download="eager" href="lib/commons-collections.jar" />  
    <jar download="eager" href="lib/commons-codec.jar" />  
    <!-- Setup configuration class -->  
    <property name="jnlp.com.wmdata.cscc.clearance.workbench.configuration_class" value="com.wmdata.cscc.clearance.workbench.core.ClearanceWorkbenchConfiguration_Standard"/>  
    <!-- Setup look and feel -->  
    <!-- Setup language etc... -->  
    <property name="jnlp.com.wmdata.cscc.i18n.language" value="en"/>  
    <property name="jnlp.com.wmdata.cscc.i18n.country" value="XX"/>  
    <property name="jnlp.com.wmdata.cscc.i18n.variant" value="imp_exp_man"/>  
    <!-- 
      Disable the default 3-attempts login dialog. 

      Only enable this proerty if you supply your own LoginModule-Logic which 
      do NOT use the Intracom LoginDialog!
      -->  
    <!--property name="cwb_standard.disable_login_dialog" value="yes please"/-->  
    <!-- Clear basic authentication header after login -->  
    <!--property name="cwb.service_manager.http_invoker.clearAuthenticationHeaderAfterLogin" value="true"/-->  
    <!-- 
      Disable WebStart http login dialogue 
      The javaws.cfg.jauthenticator property must be set to "true" or "all" to 
      disable the built-in javaws HTTP authentication dialogue. 
      -->  
    <property name="javaws.cfg.jauthenticator" value="true"/> 
  </resources>  
  <application-desc main-class="com.wmdata.cscc.clearance.workbench.launcher.MainWebStart"/>  
  <security> 
    <all-permissions/> 
  </security> 
</jnlp>
在控制台上,错误如下所示:

java.lang.NullPointerException
    at com.sun.javaws.JnlpxArgs.execProgram(Unknown Source)
    at com.sun.javaws.Launcher.relaunch(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)
(这些论据确实是乱七八糟的,但这是如何发生的还不清楚。)

以下是应用程序正确启动时跟踪文件相应级别的摘录:

basic:   jvmParams: [JVMParameters: isSecure: true, args: "-Djnlp.com.wmdata.cscc.clearance.workbench.configuration_class=com.wmdata.cscc.clearance.workbench.core.ClearanceWorkbenchConfiguration_Standard" "-Djnlp.com.wmdata.cscc.i18n.language=en" "-Djnlp.com.wmdata.cscc.i18n.country=XX" "-Djnlp.com.wmdata.cscc.i18n.variant=imp_exp_man" "-Djavaws.cfg.jauthenticator=true"]
basic: cmd 0 : C:\Program Files (x86)\Java\jre1.8.0_65\bin\jp2launcher.exe
basic: cmd 1 : -Djnlp.com.wmdata.cscc.clearance.workbench.configuration_class=com.wmdata.cscc.clearance.workbench.core.Clearanc
basic: cmd 2 : -Djnlp.com.wmdata.cscc.i18n.variant=imp_exp_man
basic: cmd 3 : -Djavaws.cfg.jauthenticator=true
basic: cmd 4 : -Djnlp.com.wmdata.cscc.clearance.workbench.configuration_class=com.wmdata.cscc.clearance.workbench.core.ClearanceWorkbenchConfiguration_Standard
basic: cmd 5 : -Djnlp.com.wmdata.cscc.i18n.language=en
basic: cmd 6 : -Djnlp.com.wmdata.cscc.i18n.country=XX
basic: cmd 7 : -Xbootclasspath/a:C:\Program Files (x86)\Java\jre1.8.0_65\lib\javaws.jar;C:\Program Files (x86)\Java\jre1.8.0_65\lib\deploy.jar;C:\Program Files (x86)\Java\jre1.8.0_65\lib\plugin.jar
basic: cmd 8 : -classpath
basic: cmd 9 : C:\Program Files (x86)\Java\jre1.8.0_65\lib\deploy.jar
basic: cmd 10 : -Djnlpx.vmargs=LURqbmxwLmNvbS53bWRhdGEuY3NjYy5jbGVhcmFuY2Uud29ya2JlbmNoLmNvbmZpZ3VyYXRpb25fY2xhc3M9Y29tLndtZGF0YS5jc2NjLmNsZWFyYW5jZS53b3JrYmVuY2guY29yZS5DbGVhcmFuYwAtRGpubHAuY29tLndtZGF0YS5jc2NjLmkxOG4udmFyaWFudD1pbXBfZXhwX21hbgAtRGphdmF3cy5jZmcuamF1dGhlbnRpY2F0b3I9dHJ1ZQAtRGpubHAuY29tLndtZGF0YS5jc2NjLmNsZWFyYW5jZS53b3JrYmVuY2guY29uZmlndXJhdGlvbl9jbGFzcz1jb20ud21kYXRhLmNzY2MuY2xlYXJhbmNlLndvcmtiZW5jaC5jb3JlLkNsZWFyYW5jZVdvcmtiZW5jaENvbmZpZ3VyYXRpb25fU3RhbmRhcmQALURqbmxwLmNvbS53bWRhdGEuY3NjYy5pMThuLmxhbmd1YWdlPWVuAC1Eam5scC5jb20ud21kYXRhLmNzY2MuaTE4bi5jb3VudHJ5PVhYAA==
basic: cmd 11 : -Djnlpx.jvm=C:\Program Files (x86)\Java\jre1.8.0_65\bin\javaw.exe
basic: cmd 12 : -Djnlpx.splashport=57124
basic: cmd 13 : -Djnlpx.home=C:\Program Files (x86)\Java\jre1.8.0_65\bin
basic: cmd 14 : -Djnlpx.remove=false
basic: cmd 15 : -Djnlpx.offline=false
basic: cmd 16 : -Djnlpx.relaunch=true
basic: cmd 17 : -Djnlpx.session.data=C:\Users\dasim\AppData\Local\Temp\session6874989919459371828
basic: cmd 18 : -Djnlpx.heapsize=NULL,NULL
basic: cmd 19 : -Djava.security.policy=file:C:\Program Files (x86)\Java\jre1.8.0_65\lib\security\javaws.policy
basic: cmd 20 : -DtrustProxy=true
basic: cmd 21 : -Xverify:remote
basic: cmd 22 : -Djnlpx.origFilenameArg=C:\Users\dasim\AppData\Local\Temp\cwb-5.jnlp
basic: cmd 23 : -Dsun.awt.warmup=true
basic: cmd 24 : -Djava.security.manager
basic: cmd 25 : com.sun.javaws.Main
basic: cmd 26 : -secure
basic: cmd 27 : C:\Users\dasim\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\53\25f096b5-7062b012
我已经尝试过重新打包JNLP文件,即使它已经符合标准,因为我们有其他应用程序JNLP文件可以正常工作,但没有成功


任何输入都值得赞赏。

“清除缓存”可能是:缓存->Java WebStart缓存(可以从Windows的Java控制面板中清除),是的,该错误报告看起来确实相关,但似乎无法重现(难怪这是同一个问题,它在我自己的机器上工作和不工作之间交替出现)。
basic:   jvmParams: [JVMParameters: isSecure: true, args: "-Djnlp.com.wmdata.cscc.clearance.workbench.configuration_class=com.wmdata.cscc.clearance.workbench.core.ClearanceWorkbenchConfiguration_Standard" "-Djnlp.com.wmdata.cscc.i18n.language=en" "-Djnlp.com.wmdata.cscc.i18n.country=XX" "-Djnlp.com.wmdata.cscc.i18n.variant=imp_exp_man" "-Djavaws.cfg.jauthenticator=true"]
basic: cmd 0 : C:\Program Files (x86)\Java\jre1.8.0_65\bin\jp2launcher.exe
basic: cmd 1 : -Djnlp.com.wmdata.cscc.clearance.workbench.configuration_class=com.wmdata.cscc.clearance.workbench.core.Clearanc
basic: cmd 2 : -Djnlp.com.wmdata.cscc.i18n.variant=imp_exp_man
basic: cmd 3 : -Djavaws.cfg.jauthenticator=true
basic: cmd 4 : -Djnlp.com.wmdata.cscc.clearance.workbench.configuration_class=com.wmdata.cscc.clearance.workbench.core.ClearanceWorkbenchConfiguration_Standard
basic: cmd 5 : -Djnlp.com.wmdata.cscc.i18n.language=en
basic: cmd 6 : -Djnlp.com.wmdata.cscc.i18n.country=XX
basic: cmd 7 : -Xbootclasspath/a:C:\Program Files (x86)\Java\jre1.8.0_65\lib\javaws.jar;C:\Program Files (x86)\Java\jre1.8.0_65\lib\deploy.jar;C:\Program Files (x86)\Java\jre1.8.0_65\lib\plugin.jar
basic: cmd 8 : -classpath
basic: cmd 9 : C:\Program Files (x86)\Java\jre1.8.0_65\lib\deploy.jar
basic: cmd 10 : -Djnlpx.vmargs=LURqbmxwLmNvbS53bWRhdGEuY3NjYy5jbGVhcmFuY2Uud29ya2JlbmNoLmNvbmZpZ3VyYXRpb25fY2xhc3M9Y29tLndtZGF0YS5jc2NjLmNsZWFyYW5jZS53b3JrYmVuY2guY29yZS5DbGVhcmFuYwAtRGpubHAuY29tLndtZGF0YS5jc2NjLmkxOG4udmFyaWFudD1pbXBfZXhwX21hbgAtRGphdmF3cy5jZmcuamF1dGhlbnRpY2F0b3I9dHJ1ZQAtRGpubHAuY29tLndtZGF0YS5jc2NjLmNsZWFyYW5jZS53b3JrYmVuY2guY29uZmlndXJhdGlvbl9jbGFzcz1jb20ud21kYXRhLmNzY2MuY2xlYXJhbmNlLndvcmtiZW5jaC5jb3JlLkNsZWFyYW5jZVdvcmtiZW5jaENvbmZpZ3VyYXRpb25fU3RhbmRhcmQALURqbmxwLmNvbS53bWRhdGEuY3NjYy5pMThuLmxhbmd1YWdlPWVuAC1Eam5scC5jb20ud21kYXRhLmNzY2MuaTE4bi5jb3VudHJ5PVhYAA==
basic: cmd 11 : -Djnlpx.jvm=C:\Program Files (x86)\Java\jre1.8.0_65\bin\javaw.exe
basic: cmd 12 : -Djnlpx.splashport=57124
basic: cmd 13 : -Djnlpx.home=C:\Program Files (x86)\Java\jre1.8.0_65\bin
basic: cmd 14 : -Djnlpx.remove=false
basic: cmd 15 : -Djnlpx.offline=false
basic: cmd 16 : -Djnlpx.relaunch=true
basic: cmd 17 : -Djnlpx.session.data=C:\Users\dasim\AppData\Local\Temp\session6874989919459371828
basic: cmd 18 : -Djnlpx.heapsize=NULL,NULL
basic: cmd 19 : -Djava.security.policy=file:C:\Program Files (x86)\Java\jre1.8.0_65\lib\security\javaws.policy
basic: cmd 20 : -DtrustProxy=true
basic: cmd 21 : -Xverify:remote
basic: cmd 22 : -Djnlpx.origFilenameArg=C:\Users\dasim\AppData\Local\Temp\cwb-5.jnlp
basic: cmd 23 : -Dsun.awt.warmup=true
basic: cmd 24 : -Djava.security.manager
basic: cmd 25 : com.sun.javaws.Main
basic: cmd 26 : -secure
basic: cmd 27 : C:\Users\dasim\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\53\25f096b5-7062b012