Application Server Solutions for Microsoft IIS and ASP.NET
       solutions   products   partners   company   support   downloads         store
ServletExec Self-Help: FAQ
Back to Search >  Back to Search Results

Faq ID 344
Product ServletExec
Category VM Support
Question Does ServletExec work with JDK 1.5.0_11?
Answer Yes. But if you need to use JDK 1.5.x then you'd be better off just using JDK 1.5.0_12.

If you really need to to use 1.5.0_11 then you need know about some things:

With JDK 1.5 installed:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\CurrentVersion = 1.5
This is correct.
The 1.5 Registry entry has a JavaHome entry whose value points to where the JDK was installed.
For example with JDK 1.5.0_10:
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.5\JavaHome=C:\Program Files\Java\jdk1.5.0_10
This is correct, and works fine.

If you then install JDK 1.5.0_11, the value of that JavaHome Registry entry becomes "1" (no quotes).
This is completely wrong, and is due to a bug that Sun introduced into the installer for their JDK 1.5.0_11.
Here is the report for that particular Sun JDK installer bug.
The fix is to use RegEdit to manually modify that JavaHome value. In the above example, the value should be changed to:
C:\Program Files\Java\jdk1.5.0_11
When this problem occurs, SE ISAPI will fail to startup. This is because ServletExec_ISAPI.dll uses the registry to find the JDK. Since the registry is wrong, SE's DLL is unable to load the JDK. ServletExecNative.log (& DBMON) would show the following sort of errors:
ServletExec: The ServletExec-ISAPI DLL (in-process) for ServletExec is initializing...
ServletExec: CJavaVM::loadJavaLibrary(): failed to load 1\jre\bin\server\jvm.dll
ServletExec: CJavaVM::loadJavaLibrary(): failed to load 1\jre\bin\client\jvm.dll
ServletExec: Failed to get JNI environment.
ServletExec: Failed to initialize.
ServletExec: Failed to get JNI environment (JavaHome = 1).
ServletExec: setup() failed to get JNI environment.

If the SE AS installer is run on a Windows machine whose Registry is in this incorrect state, then the SE AS installer will:
  1. fail to create (or update) the file
  2. create StartServletExec.bat & StopServletExec.bat files which have an invalid path to the JDK, thus preventing them from being useable.

The solution is as follows:
  1. uninstall SE AS
  2. fix your registry so that HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\1.5\JavaHome points to the correct location (instead of having a value of 1 which is incorrect).
  3. re-install SE AS

The reason an invalid registry causes problems for the SE AS installer is because the SE AS installer actually uses the JDK for certain tasks (writing, and the start and stop batch files). If the SE installer can't find the JDK, then it can't complete these tasks properly, leaving you with an SE installation that's missing some required files.

NOTE: The installer for JDK 1.5.0_12 does not suffer from this problem.

company media information terms of use privacy policy contact us