When getting the following message using JInitiator: “Unable to verify the certificate – code will be treated as unsigned.”, please check “Control Panel > JInitiator > Cache”, to which location Java will store the ‘Oracle Jar Cache’ and JInitiator settings (like the ‘Grant Always’ setting and ‘Oracle Jar Cache’ directory) in <USERHOME>\.jinit\properties<jinit version> and jpicerts<jinit version>.
Java will get the USERHOME path from the Windows registry [HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Desktop] when looking for the Desktop path setting and truncates the ‘Desktop’ part. Most of the time this will result in the correct USERHOME directory, but when this setting is changed to a network path where users are not granted write access, Java is not able to store the Cache and JInitiator settings.
Ofcourse, this can be one of a few problems, but if you suspect a case like this, there might be a solution…As a workaround, we created a .jinit directory on the network where JInitiator is expecting them, a properties<jinit version> with the ‘Oracle Jar Cache’ directory pointing to a local’s temp folder (using “Control Panel > JInitiator”) and a jpicerts<jinit version> (by starting JInitator on the client) and made this folder available for the user(s). This .jinit folder was created with an admin user with write access to that network folder, or you could use a machine with the Desktop folder pointing where the current user is able to write (‘C:\Document and Settings\<user_name>’).
Ofcourse make sure these settings are not overwritten by users, but most of the time they will not try to change JInitator settings via Control Panel. You can also make these files read-only. For us, this work around works.
More info on this java-bug can be found here: Sun Bug ID: 4787931 and here: Sun Bug ID: 6519127
Happy consulting!