svyUtils Excel - Smart Client Not Launching

Hey Guys,

We’re on 2019.3.2 LTS (releaes 3414) - and I’m using the svyUtils Excel module - and calling it from WebClient - works great!

However, now no one can launch the Smart Client from that server (since installed POI and the 6.4.1 Jasper - following the instructions here: ExcelUtils · Servoy/svyUtils Wiki · GitHub

The error is “JAR resources in JNLP file are not signed by the same certificate”

Is there a way to download files that will work with 2019.3.2 LTS svyUtils Excel and still allow Smart Clients to connect?

Full exception:

JNLPException[category: Launch File Error : Exception: null : LaunchDesc: 
<jnlp codebase="http://jccc-data:8080/" href="servoy-client/plugins/servoy_jasperreports.jar.jnlp" spec="1.0+">
  <information>
    <title>Servoy Client Plugins</title>
    <vendor>Servoy and Others</vendor>
  </information>
  <resources>
    <j2se version="1.6+"/>
    <jar download="eager" href="plugins/servoy_jasperreports.jar" version="1619214315783"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-io.jar" part="commons-io" version="1619214312302"/>
    <package name="org.apache.commons.io.*" part="commons-io" recursive="true"/>
    <jar download="eager" href="lib/commons-collections.jar" part="commons-collections" version="1580389285124"/>
    <package name="org.apache.commons.collections.*" part="commons-collections" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/jasperreports-6.4.1.jar" version="1619214314527"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-beanutils-1.9.3.jar" part="commons-beanutils" version="1619214310903"/>
    <package name="org.apache.commons.beanutils.*" part="commons-beanutils" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-collections4-4.1.jar" part="commons-collections4" version="1619214310742"/>
    <package name="org.apache.commons.collections4.*" part="commons-collections4" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-digester-2.1.jar" part="commons-digester" version="1619214312349"/>
    <package name="org.apache.commons.digester.*" part="commons-digester" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-logging-1.1.1.jar" part="commons-logging" version="1619214310443"/>
    <package name="org.apache.commons.logging.*" part="commons-logging" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/groovy-all-2.4.5.jar" part="groovy" version="1619214312270"/>
    <package name="org.codehaus.groovy.*" part="groovy" recursive="true"/>
    <package name="groovy.*" part="groovy" recursive="true"/>
    <package name="groovyjarjarantlr.*" part="groovy" recursive="true"/>
    <package name="groovyjarjarasm.asm.*" part="groovy" recursive="true"/>
    <package name="groovyjarjarcommonscli.*" part="groovy" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/itext-2.1.7.js6.jar" part="itext" version="1619214312912"/>
    <package name="com.lowagie.*" part="itext" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/ecj-4.3.1.jar" part="jdt-compiler" version="1619214315266"/>
    <package name="org.eclipse.jdt.*" part="jdt-compiler" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/poi-3.15.jar" part="poi" version="1619214315576"/>
    <package name="org.apache.poi.*" part="poi" recursive="true"/>
  </resources>
  <component-desc/>
  <security>
    <all-permissions/>
  </security>
</jnlp> ]
	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)

Sounds like you have the wrong variant of the poi.zip. Apart from that with Servoy versions also some of the extra libraries required have changed over time, the content of the poi.zip is also signed with the same certificate as the rest. For 2019.3.2 you probably need the version mentioned under “Servoy 8.1.2/7.4.9 or later and Jasper plugin 6.4.1 or later”,

Hey Patrick,

THANKS for your response. I’ve re-downloaded the POI and the Jasper Plugin and modified the “servoy_jasperreports.jar.jnlp” to add these lines in the resources section:

<jar href="/plugins/poi/poi-ooxml-3.15.jar" download="lazy" version="3.15"/>
<jar href="/plugins/poi/curvesapi-1.04.jar" download="lazy" version="1.04"/>
<jar href="/plugins/poi/poi-ooxml-schemas-3.15.jar" download="lazy" version="3.15"/>
<jar href="/plugins/poi/xmlbeans-2.6.0.jar" download="lazy" version="2.6.0"/>

Still won’t launch:

JNLPException[category: Launch File Error : Exception: null : LaunchDesc: 
<jnlp codebase="http://jccc-data:8080/" href="servoy-client/plugins/servoy_jasperreports.jar.jnlp" spec="1.0+">
  <information>
    <title>Servoy Client Plugins</title>
    <vendor>Servoy and Others</vendor>
  </information>
  <resources>
    <j2se version="1.6+"/>
    <jar download="eager" href="plugins/servoy_jasperreports.jar" version="1619451267341"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-io.jar" part="commons-io" version="1619451267004"/>
    <package name="org.apache.commons.io.*" part="commons-io" recursive="true"/>
    <jar download="eager" href="lib/commons-collections.jar" part="commons-collections" version="1580389285124"/>
    <package name="org.apache.commons.collections.*" part="commons-collections" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/jasperreports-6.4.1.jar" version="1619451267185"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-beanutils-1.9.3.jar" part="commons-beanutils" version="1619451266843"/>
    <package name="org.apache.commons.beanutils.*" part="commons-beanutils" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-collections4-4.1.jar" part="commons-collections4" version="1619451266823"/>
    <package name="org.apache.commons.collections4.*" part="commons-collections4" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-digester-2.1.jar" part="commons-digester" version="1619451267025"/>
    <package name="org.apache.commons.digester.*" part="commons-digester" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/commons-logging-1.1.1.jar" part="commons-logging" version="1619451266787"/>
    <package name="org.apache.commons.logging.*" part="commons-logging" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/groovy-all-2.4.5.jar" part="groovy" version="1619451266985"/>
    <package name="org.codehaus.groovy.*" part="groovy" recursive="true"/>
    <package name="groovy.*" part="groovy" recursive="true"/>
    <package name="groovyjarjarantlr.*" part="groovy" recursive="true"/>
    <package name="groovyjarjarasm.asm.*" part="groovy" recursive="true"/>
    <package name="groovyjarjarcommonscli.*" part="groovy" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/itext-2.1.7.js6.jar" part="itext" version="1619451267065"/>
    <package name="com.lowagie.*" part="itext" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/ecj-4.3.1.jar" part="jdt-compiler" version="1619451267238"/>
    <package name="org.eclipse.jdt.*" part="jdt-compiler" recursive="true"/>
    <jar download="eager" href="plugins/servoy_jasperreports/poi-3.15.jar" part="poi" version="1619451267320"/>
    <package name="org.apache.poi.*" part="poi" recursive="true"/>
    <jar download="eager" href="plugins/poi/poi-ooxml-3.15.jar" version="1618871277267"/>
    <jar download="eager" href="plugins/poi/curvesapi-1.04.jar" version="1618871277395"/>
    <jar download="eager" href="plugins/poi/poi-ooxml-schemas-3.15.jar" version="1618871277599"/>
    <jar download="eager" href="plugins/poi/xmlbeans-2.6.0.jar" version="1618871277363"/>
  </resources>
  <component-desc/>
  <security>
    <all-permissions/>
  </security>
</jnlp> ]
	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)