Jasper Reports - Having difficulty self signing jars

I was provided with a barbecue-1.5-beta1.jar for inserting barcodes in Jasper Reports. However when I attempt to start the Smart Client from our app server, I get a message stating that not all jars in the JNLP file are signed by the same certificate. So I modified signtester.jar to only self sign the jasper reports jars with our key using the overwrite option. This seems to work fine, but the problem still persists. I still get the same error. Maybe I am just missing something?

Or better yet, does anyone have a complete set of servoy-jasperreport plugin v3.2 jars including barbecue that are all signed by the same certificate? :)

Here is the log from the signtester…

Verifiying dir: .\plugins\servoy_jasperreports

Unsigning: barbecue-1.5-beta1.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\barbecue-1.5-beta1.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\barbecue-1.5-beta1.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\barbecue-1.5-beta1.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\barbecue-1.5-beta1.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\barbecue-1.5-beta1.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\barbecue-1.5-beta1.jar signed
Jar file size: 94Ko
Time to process: 655ms

Unsigning: commons-beanutils-1.8.0.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-beanutils-1.8.0.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-beanutils-1.8.0.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-beanutils-1.8.0.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-beanutils-1.8.0.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-beanutils-1.8.0.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-beanutils-1.8.0.jar signed
Jar file size: 235Ko
Time to process: 964ms

Unsigning: commons-digester-1.7.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-digester-1.7.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-digester-1.7.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-digester-1.7.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-digester-1.7.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-digester-1.7.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\commons-digester-1.7.jar signed
Jar file size: 143Ko
Time to process: 595ms

Unsigning: iText-2.1.7.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\iText-2.1.7.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\iText-2.1.7.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\iText-2.1.7.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\iText-2.1.7.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\iText-2.1.7.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\iText-2.1.7.jar signed
Jar file size: 1124Ko
Time to process: 4684ms

Unsigning: jasperreports-4.0.0.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jasperreports-4.0.0.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jasperreports-4.0.0.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jasperreports-4.0.0.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jasperreports-4.0.0.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jasperreports-4.0.0.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jasperreports-4.0.0.jar signed
Jar file size: 3083Ko
Time to process: 12393ms

Unsigning: jdt-compiler-3.1.1.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jdt-compiler-3.1.1.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jdt-compiler-3.1.1.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jdt-compiler-3.1.1.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jdt-compiler-3.1.1.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jdt-compiler-3.1.1.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\jdt-compiler-3.1.1.jar signed
Jar file size: 1182Ko
Time to process: 4773ms

Unsigning: poi-3.6.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\poi-3.6.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\poi-3.6.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\poi-3.6.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\poi-3.6.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\poi-3.6.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports\poi-3.6.jar signed
Jar file size: 1571Ko
Time to process: 6170ms

Unsigning: servoy_jasperreports.jar
C:\Servoy6\application_server\.\plugins\servoy_jasperreports.jar unsigned
C:\Servoy6\application_server\.\plugins\servoy_jasperreports.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports.jar first sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports.jar repacked
C:\Servoy6\application_server\.\plugins\servoy_jasperreports.jar second sign attempt
C:\Servoy6\application_server\.\plugins\servoy_jasperreports.jar signed
Jar file size: 65Ko
Time to process: 286ms

The exception…

NLPException[category: Launch File Error : Exception: null : LaunchDesc: 
<jnlp spec="1.0+" codebase="http://dtap-d.softwear.nl:80/" href="http://dtap-d.softwear.nl:80/servoy-client/plugins/servoy_jasperreports.jar.jnlp">
  <information>
    <title>Jasper Reports</title>
    <vendor>Jaspersoft</vendor>
    <homepage href="null"/>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="timeout" policy="always"/>
  <resources>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports.jar" version="1321300432673" download="eager" main="false"/>
    <jar href="http://dtap-d.softwear.nl:80/lib/commons-collections.jar" version="1305029539677" part="commons-collections" download="eager" main="false"/>
    <package name="org.apache.commons.collections." part="commons-collections" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/lib/commons-logging.jar" version="1305029539795" part="commons-logging" download="eager" main="false"/>
    <package name="org.apache.commons.logging." part="commons-logging" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/lib/commons-dbcp.jar" version="1305029539715" part="commons-dbcp" download="eager" main="false"/>
    <package name="org.apache.commons.dbcp." part="commons-dbcp" recursive="true"/>
    <package name="org.apache.commons.jocl." part="commons-dbcp" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/jasperreports-4.0.0.jar" version="1321300415189" download="eager" main="false"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/commons-beanutils-1.8.0.jar" version="1321300415205" part="commons-beanutils" download="eager" main="false"/>
    <package name="org.apache.commons.beanutils." part="commons-beanutils" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/commons-digester-1.7.jar" version="1321300415205" part="commons-digester" download="eager" main="false"/>
    <package name="org.apache.commons.digester." part="commons-digester" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/iText-2.1.7.jar" version="1321300415158" part="itext" download="eager" main="false"/>
    <package name="com.lowagie." part="itext" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/jdt-compiler-3.1.1.jar" version="1321300415127" part="jdt-compiler" download="eager" main="false"/>
    <package name="org.eclipse.jdt." part="jdt-compiler" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/poi-3.6.jar" version="1321300415143" part="poi" download="eager" main="false"/>
    <package name="org.apache.poi." part="poi" recursive="true"/>
    <jar href="http://dtap-d.softwear.nl:80/plugins/servoy_jasperreports/barbecue-1.5-beta1.jar" version="1321300415221" part="barbecue" download="eager" main="false"/>
    <package name="net.sourceforge.barbecue." part="barbecue" recursive="true"/>
  </resources>
  <component-desc/>
</jnlp> ]
	at com.sun.javaws.LaunchDownload.checkSignedResourcesHelper(Unknown Source)
	at com.sun.javaws.LaunchDownload.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$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

this will not work because:

"

that is also included and that is signed by us so that will not work, if you want to then you can self sign everything so everything of servoy including all plugins so that really everything is signed by one certificate.

What you also can do is not sign the jasper plugin but only self sign the extra jar
and include that jar not through

but through an jnlp file itself that you also have created.
so something like:

and create that barbecue.jar.jnlp file in that dir that just has this:

Hi!
I can not print the barcode with jasper when running on a Linux server.
Follow the instructions of Johan_Compagner, but does not work.
Attached my files in case someone can help me.

I create the file /usr/local/servoy/application_server/plugins/servoy_jasperreports/barbecue.jar.jnlp

<?xml version="1.0" encoding="UTF-8"?> Servoy Client Plugins Servoy and Others

and in the file /usr/local/servoy/application_server/plugins/servoy_jasperreports.jar.jnlp add the line:

Signtester then use to sign, but in the linux server the report still does not work with barbecue and a screen with the message.

Error occurred in server thread; nested exception is:
java.lang,NoClassDefFoundError:net/sourcefo…

Thanks!
Roberto Diez.
Interdata Software.
Argentina.

so you did restart the server, all files are in the right places?
i guess that: java.lang,NoClassDefFoundError:net/sourcefo
is from the BBQ jar?

But you are saying on the server? So not a smart client but a webclient or batchprocessor?
any thing on the server doesn’t use jnlp files (or signed jars at all)
That is just picking up everything in the plugins/ dir

What is your full stack trace?

Hi Johan Compagner !
I have reviewed the location of the files and correct.
In webclient it works but smart client I have the following error:

Java Web Start 1.6.0_24
Usar versión JRE 1.6.0_24-b07 Java HotSpot™ Client VM
Directorio local del usuario = C:\Users\roberto

c: borrar ventana de consola
f: finalizar objetos en la cola de finalización
g: liberación de recursos
h: presentar este mensaje de ayuda
m: imprimir sintaxis de memoria
o: activar registro
p: recargar configuración de proxy
q: ocultar consola
r: recargar configuración de norma
s: volcar propiedades del sistema y de despliegue
t: volcar lista de subprocesos
v: volcar pila de subprocesos
0-5: establecer nivel de rastreo en

ERROR - Debug - Throwable
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.io.InvalidClassException: javax.swing.JComponent; local class incompatible: stream classdesc serialVersionUID = 5858390075012080263, local class serialVersionUID = -1030230214076481435
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at com.servoy.plugins.jasperreports.JasperReportsServer_Stub.getJasperPrint(Unknown Source)
at com.servoy.plugins.jasperreports.JasperReportsProvider.runReport(JasperReportsProvider.java:465)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:372)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:365)
at com.servoy.plugins.jasperreports.JasperReportsProvider.js_runReport(JasperReportsProvider.java:359)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:179)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:367)
at org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:81)
at org.mozilla.javascript.gen.c59._c0(onActionImprimir:111)
at org.mozilla.javascript.gen.c59.call(onActionImprimir)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:387)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3134)
at org.mozilla.javascript.gen.c59.call(onActionImprimir)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:528)
at com.servoy.j2db.FormController.executeFunction(FormController.java:4058)
at com.servoy.j2db.FormController.executeFunction(FormController.java:3937)
at com.servoy.j2db.FormController.executeFunction(FormController.java:3859)
at com.servoy.j2db.FormController$ScriptExecuter.executeFunction(FormController.java:3714)
at com.servoy.j2db.ui.BaseEventExecutor.fireEventCommand(BaseEventExecutor.java:271)
at com.servoy.j2db.ui.BaseEventExecutor.fireActionCommand(BaseEventExecutor.java:217)
at com.servoy.j2db.ui.BaseEventExecutor.fireActionCommand(BaseEventExecutor.java:212)
at com.servoy.j2db.smart.dataui.AbstractScriptButton$2.actionPerformed(AbstractScriptButton.java:670)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.io.InvalidClassException: javax.swing.JComponent; local class incompatible: stream classdesc serialVersionUID = 5858390075012080263, local class serialVersionUID = -1030230214076481435
at java.io.ObjectStreamClass.initNonProxy(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.ArrayList.readObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.ArrayList.readObject(Unknown Source)
at sun.reflect.GeneratedMethodAccessor12.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.defaultReadObject(Unknown Source)
at net.sf.jasperreports.engine.JasperPrint.readObject(JasperPrint.java:831)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at sun.rmi.server.UnicastRef.unmarshalValue(Unknown Source)
… 63 more

can you help me?
Thanks!
Roberto Diez.
Interdata Software.
Argentina.

Or better yet, does anyone have a complete set of servoy-jasperreport plugin v3.2 jars including barbecue that are all signed by the same certificate?

I am looking for this, too!

Feature request filed on Servoy Forge: Case #394

somehow the client doesn’t update to the new jars. (so the server has the new jars but the client the old once so they can’t talk to each other)
Which is should do now because we do push the versions needed all the way to the top most jnlp file.
I guess if you clear the java cache on the client it works?

EDIT: wait now i see the real class version problem, and its JComponent, so somehow swing ui is transfered from server to client or visa versa.
That shouldn’t happen…

I guess this is something that should be looked at in the plugin itself.

Hi Roberto,

What version of the plugin are you using? Are you using a foundset based report (or a classic SQL report)?
Please make a case on this at Issues - Servoy JasperReports Plugin - ServoyForge and attach a sample solution+report?

Regards,
Andrei