qqqqqq
Level 7

using sqljdbc.jar file

For custom codes(db connections,etc.), i am using sqljdbc.jar file from microsoft.
But As soon as i add it as a dependency jar. The .exe when run, before startup it throws this error:

preinstaller.properties not found.
IAResourceBundle: create resource bundle: en
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.zerog.ia.installer.Action.isFound(DashoA10*..)
at ZeroGh.a(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.b(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.a(DashoA10*..)
at com.zerog.ia.installer.Main.main(DashoA10*..)
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 com.zerog.lax.LAX.launch(DashoA10*..)
at com.zerog.lax.LAX.main(DashoA10*..)
Caused by: java.lang.SecurityException: no manifiest section for signature file entry com/microsoft/sqlserver/jdbc/CharacterStreamSetterArgs.class
at sun.security.util.SignatureFileVerifier.verifySection(Unknown Source)
at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
at sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.util.jar.JarFile.getInputStream(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source)
at ZeroGd.b(DashoA10*..)
at ZeroGad.a(DashoA10*..)
at ZeroGac.a(DashoA10*..)
at ZeroGac.b(DashoA10*..)
at com.zerog.util.IAResourceBundle.createIAResourceBundle(DashoA10*..)
at com.zerog.util.IAResourceBundle.getUsableBundle(DashoA10*..)
at com.zerog.util.IAResourceBundle.getValue(DashoA10*..)
at com.zerog.util.IAResourceBundle.getValue(DashoA10*..)
at com.zerog.util.IAResourceBundle.getValue(DashoA10*..)
at com.zerog.ia.installer.actions.InstallPanelAction.(DashoA10*..)
... 13 more


Any clue.?
this seems to be about some security certificate issue. 😞
How should this jar be used then?
Labels (1)
0 Kudos
22 Replies
qqqqqq
Level 7

This also is thrown:
preinstaller.properties not found.
IAResourceBundle: create resource bundle: en
java.lang.ExceptionInInitializerError
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at com.zerog.ia.installer.Action.isFound(DashoA10*..)
at ZeroGh.a(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.b(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.a(DashoA10*..)
at com.zerog.ia.installer.Main.main(DashoA10*..)
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 com.zerog.lax.LAX.launch(DashoA10*..)
at com.zerog.lax.LAX.main(DashoA10*..)
Caused by: java.lang.SecurityException: cannot verify signature block file META-INF/ZIGBERT
at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
at sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.util.jar.JarFile.getInputStream(Unknown Source)
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at java.lang.ClassLoader.getSystemResourceAsStream(Unknown Source)
at ZeroGd.b(DashoA10*..)
at ZeroGad.a(DashoA10*..)
at ZeroGac.a(DashoA10*..)
at ZeroGac.b(DashoA10*..)
at com.zerog.util.IAResourceBundle.createIAResourceBundle(DashoA10*..)
at com.zerog.util.IAResourceBundle.getUsableBundle(DashoA10*..)
at com.zerog.util.IAResourceBundle.getValue(DashoA10*..)
at com.zerog.util.IAResourceBundle.getValue(DashoA10*..)
at com.zerog.util.IAResourceBundle.getValue(DashoA10*..)
at com.zerog.ia.installer.actions.InstallPanelAction.(DashoA10*..)
... 13 more
0 Kudos
qqqqqq
Level 7

The jar is NOT corrupted. I tried downloading new jar also
0 Kudos
pv7721
Level 20

Doesn't this jar come with any documentation at all on how to use it?
0 Kudos
qqqqqq
Level 7

no there is no documentation as such.
Why this check is done in the initializer of installAnywhere install?
Is there any way to disable it?
This is very standard jar from microsoft.
Many people would be using it for database connection to sql server.
Any clue?
0 Kudos
pv7721
Level 20

Where did you get it exactly?
0 Kudos
pv7721
Level 20

Both the Windows and Unix downloads bundle HTML help. Have you checked that?
0 Kudos
qqqqqq
Level 7

yes that did not help..
you can use the link to download..
it contains a sqljdbc.jar inside it..
the use a dummy custom action with dependency of sqljdbc.jar
At startup only it will fail 😞
0 Kudos
pv7721
Level 20

There's something not ok with this jar. If you look inside what you see, besides a com and a manifest folders? Another jar: sqljdbc.jar of size 0 and a sqljdbc.jar.old! On the other hand, in the manifest file I see this:

Name: com/microsoft/sqlserver/jdbc/CharacterStreamSetterArgs.class
Digest-Algorithms: MD5 SHA1
MD5-Digest: 5FVUasVuBJJNhBaJXckXXA==
SHA1-Digest: NZmT+0FEnwq+PkZK98nto8dWhuI=

So the first error: Caused by: java.lang.SecurityException: no manifiest section for signature file entry com/microsoft/sqlserver/jdbc/CharacterStreamSetterArgs.class doesn't make too much sense.

Maybe this is more important? "preinstaller.properties not found." Anyway, if I were you, I would contact Microsoft and ask them about the contents of this jar...
0 Kudos
qqqqqq
Level 7

This is what i found in one of the java forums:
http://forums.sun.com/thread.jspa?threadID=5257700
It talks abt the issue related to eclipse. But with installanywhere, i dont know how to solve it. 😞

Adding part of the reply here..

I see that this issue was posted some time ago... but better a late reply than none.

This is most likely an incompatibility between two jar signer tools, I?ll explain further?..

The JDBC driver jar (sqljdbc.jar) that you included in your deployment jar is signed by Microsoft?s signing tool ?SignTool.exe? whereas Eclipse is most likely using the Java standard ?Jar.exe? and ?javasigner.exe? tools to create your deployment jar.

I experienced the same problem on a recent project, and I found that this signer tool incompatibility is only an issue when including the sqljdbc.jar into the deployment jar that is created using the Java tools.

To fix the problem, you will need to locate the ANT build.xml file that Eclipse is using to compile and jar your application. Within the build.xml file you need to locate the ?? task, there you will most likely find something similar to the following script:



The above script is used to include the sqljdbc.jar into your deployment jar. You need to replace it with the following script:


.
.
filesetmanifest="merge">
.
.



.
.


It is worth mentioning that the path value used in the above example is relative to the jar execution folder. So for example, if the deployment jar were deployed to C:\bin, then the sqljdbc.jar would need to be deployed separately to C:\bin\ref_jars\sqljdbc.jar.



Help appreciated

0 Kudos
pv7721
Level 20

Well, this might be your issue, the fact that the jar is signed. IA didn't support custom code dependency on signed jars, and I don't know what's the status of more recent versions. You can also check this thread here:
http://community.flexerasoftware.com/showthread.php?t=178483&highlight=signed+jar
0 Kudos
qqqqqq
Level 7

sad.. i am not able to open any of those 3 links in your post 😞
quoting ur post here:
pv7721 wrote:
FYI, this might be a very old issue (almost 3 years!), possible not fixed yet:

http://community.zerog.com/cgi-bin/ikonboard.cgi?s=47d16eaa1414ffff;act=ST;f=17;t=5935;hl=signed+and+jar

LE: After more search I've found another post:

http://community.zerog.com/cgi-bin/ikonboard.cgi?s=47d16eaa1414ffff;act=ST;f=15;t=4811;hl=signed+and+jar

that was pointing to a not supported workaround:

http://community.zerog.com/cgi-bin/ikonboard.cgi?act=ST;f=15;t=2351;hl=classpath+and+hack

Hope this helps!


Can you pls briefly tell what these links say..?
0 Kudos
qqqqqq
Level 7

on similar lines of workaround for signed jars, i found this:
http://kb.acresso.com/selfservice/viewContent.do?externalID=Q000549

workaround mentioned there is : You can put the jar file in the VM pack. Place it in the extensions directory inside the JRE and it should work, as that'll place it on the class path.
(I need to check if this workaround works or not)

Issues:
1. We are using a microsoft signed sql jdbc jar. I am afraid if it is legal to put a microsoft jar in SUN's jre. 😞

There it says "as that'll place it on the class path." . so is there any other way to put a jar in classpath?
0 Kudos
pv7721
Level 20

qqqqqq wrote:
sad.. i am not able to open any of those 3 links in your post 😞
quoting ur post here:


Can you pls briefly tell what these links say..?


I'm sorry but when I wrote the post, that is a couple of hours ago, I've checked and the links were working. Now that I've tried them, the site seems to be down again. It's the only community IA forums back in the time IA was made by ZeroG, which the Macrovision bought (before selling the software division which became Acresso Software). Those forums are still maintained in a read only form, but seem to come and go from time to time... I think I'm going to report them again here: http://community.flexerasoftware.com/showthread.php?t=184979
0 Kudos
qqqqqq
Level 7

i am still not able to see the links 😞
Is the workaround mentioned at http://kb.acresso.com/selfservice/viewContent.do?externalID=Q000549 is same as in the links?
--> this link tell to have the required jar inside ext directory of bundled jre.(so as to put it in classpath.)

Is there any other way to put it in the classpath?

Can I turn off this signed jar check which is done at the boot of installer?

what should i be doing?
0 Kudos
pv7721
Level 20

The links worked for me. Please find attached the pages they open!
0 Kudos
qqqqqq
Level 7

Thank you. 🙂
Will the following workaround work?
-->
Load the jar at runtime.
I am able to load a jar runtime, if the path of the jar is known.

So, if I just include the sqljdbc.jar (not as dependency but just install file),
How do I get the path of the sqljdbc.jar (may be in temporary directory) ?
Is there any way to get the jar path during the 'installation panel progress'.
0 Kudos
narguy
Level 2

Hi qqqqqq

Did you ever get any resolution on your sqljdbc.jar manifest error that you were seeing? I am seeing the same symptoms.

Thanks... -Pete
0 Kudos
purcellk24
Level 7

Most likely this is a sealed jar file. I thought that IA extracts all of your dependency jar files and then creates one big one.
What you can try to do is to "install" the jar file to a temp directory, then load the jar file into a classloader, then you should be able to use it.
Search the old forums for ClassPathHacker.
0 Kudos
qqqqqq
Level 7

I communicated with IA guys..
This problem is with the signed jars as dependency..
This is a known issue for them.. workaround for it is same as...
http://kb.acresso.com/selfservice/viewContent.do?externalID=Q000549

OR you can runtime load the libraries (i.e. sqljdbc jar) and use it
in that case you have to bundle the sqljdbc jar separately with the install.exe
0 Kudos