Unisgned class file in JAR

Hello,

I’ve created a Java client to call a flow service in IS 6.1. This works fine but I also need to package this client up as a JAR. I’m using ANT to build a jar for this which pulls in various classes from the webMethods’ client.jar. However when I run this jar I get the following error:

Exception in thread “main” java.lang.ExceptionInInitializerError
at com.baesystems.trilogi.uploadclient.webMethods.WebMethodsHandler.connectToWebMethods(WebMethodsHandler.java:113)
at com.baesystems.trilogi.uploadclient.webMethods.WebMethodsHandler.connectToWebMethods(WebMethodsHandler.java:108)
at com.baesystems.trilogi.uploadclient.webMethods.SubmitChangeRequest.connect(SubmitChangeRequest.java:83)
at com.baesystems.trilogi.uploadclient.webMethods.SubmitChangeRequest.init(SubmitChangeRequest.java:34)
at com.baesystems.trilogi.uploadclient.webMethods.SubmitChangeRequest.main(SubmitChangeRequest.java:103)
Caused by: java.lang.SecurityException: Self-Integrity Check FAILED: java.lang.SecurityException: jar:file:/D:/eclipse/workspace/Upload%20Client/build/submitChangeRequest.jar!/ contains at least one unsigned class file – com/wm/app/b2b/client/AccessException.class
at com.entrust.toolkit.security.provider.JCEVerifierImpl.checkIntegrity(Unknown Source)
at com.entrust.toolkit.security.provider.Entrust.(Unknown Source)
at com.wm.app.b2b.client.BaseContext.(BaseContext.java:109)
… 5 more

Is there anyway to fix this problem? Or should I create a JAR that doesn’t make any reference to classes contained in client.jar and just ensure that client.jar is on the classpath when the JAR is run?

Many thanks for your help,

Ian.

It is simpilest if you put your code into a JAR and run it with client.jar and other required jars (entrust/entbase.jar entrust/entcertlist.jar entrust/entmisc.jar entrust/entnsext.jar entrust/entssl.jar) on the classpath.

If all the jars of your application needs to be signed (say to run as an applet or with Java WebStart) then a signed version of client.jar should be created (the entrust jars are already signed). If this is required, I can dig up the procedure (there was something tricky besides the standard complexity of cert management).

If you don’t need a signed client.jar and the issue is the 8Meg size of that jar, there may be another solution (although not totally clean).

HTH,
Fred