Verify you installed ServletExec using the latest installer. The latest installer is ServletExec_AS_60a.exe. If you didn't use the latest installer then un-install ServletExec, download the latest installer from the New Atlanta website and re-install ServletExec using the latest installer.
SE AS 6.0 is installed as 2 components: an adapter for IIS and a ServletExec service which uses java.
When testing ServletExec, you should use a browser running on the same machine as IIS and ServletExec to rule out any network or firewall issues.
To verify IIS is running:
- Use a browser to hit an html page in the C:\InetPub\wwwroot directory. If you place a hello.html file in this directory then you can serve it up using a browser on the same machine by entering the URL http://127.0.0.1/hello.html.
To verify the ServletExec service is running properly:
- Open the Services control panel and verify the ServletExec-<instance name> service is running. If the ServletExec service fails to start then check the Event Viewer for errors.
- Check C:\Program Files\New Atlanta\ServletExec AS\se-<instance name>\ServletExec.log for errors.
- If there are no errors and it says it is ready to process requests then it is running properly.
- If it contains a java.net.SocketException then some other process might be listening on the port that ServletExec is trying to use. You can determine the port ServletExec is trying to use by finding the line that sets "sePort" in StartServletExec.bat. The default value is port 8888. You can tell if a process is already listening on port 8888 by invoking the command "netstat -a -o -b" and looking for an entry that has a Local Address of 0.0.0.0:8888 and a state of LISTENING. The PID column will give the process ID of the process that is listening on the port and the next line will give the name of the process. If ServletExec is listening on the port then the process name will be [java.exe] since ServletExec is a java application.
- If the ServletExec service is not running then there may be a permissions problem. By default the ServletExec service runs under the Local System account. Trying having it run under an administrator account to see if that solves the problem. This can be done by right-clicking on the ServletExec service in the services control panel and selecting Properties. Select the Log On tab and then select this account setting it to an administrator account and password. Select Apply and OK. You'll need to restart the ServletExec service after making this change.
- If the ServletExec service failed to start and a ServletExec.log file wasn't generated then check the Java VM being used by ServletExec by following these steps:
- Edit StartServletExec.bat to see what jvmHome is being set to. It should be set to something like this "C:\Program Files\Java\jdk1.6.0_14".
- From a command prompt, enter the following command with the double quotes: "<jvmHome value>\bin\java" -version.
- If the Java VM is installed properly then you should see output like the following: java version "1.6.0_14".
- If the Java VM is not installed properly then edit StartServletExec.bat and StopServletExec.bat to point to a properly installed Java VM. If one isn't installed then you'll need to download and install it.
- If your Java VM looks good and the ServletExec service still fails without generating a ServletExec.log file then follow these steps:
- From a command prompt, invoke the StartServletExec.bat file.
- If you receive the following error message then most likely your Java VM is corrupt and you'll need to uninstall and reinstall it: "Exception in thread "main" java.lang.NoClassDefFoundError: ServletExec, Could not find the main class: ServletExec. Program will exit." If you reinstall the Java VM to a different location then you'll need to edit the StartServletExec.bat and StopServletExec.bat files to point to the new location for the Java VM.
- For all other error messages, send them to firstname.lastname@example.org and we'll try to help you figure out what is going wrong.
- If all of the previous steps passed then the final step in verifying the ServletExec service is to try to telnet to the service using the following steps:
- Open a command prompt window.
- Type "telnet 127.0.0.1 8888" and enter. NOTE: replace 8888 with the port ServletExec is using if it isn't using port 8888.
- If the window goes blank and you see a blinking cursor at the top of the window then the ServletExec service is running properly. Hit enter twice to break the connection to ServletExec.
- If you see "Connecting To 127.0.0.1...Could not open connection to the host, on port 8888: Connect failed" then either the ServletExec service isn't running or a firewall is preventing connections to the port ServletExec is using.
To verify the IIS adapter is installed properly:
- Verify ServletExec_Adapter.dll was installed to C:\InetPub\Scripts. If your version of Windows is 32-bit then the size of this DLL should be 296KB. If your version of Windows is 64-bit then the size of the DLL should be 485KB.
- If you are on a 64-bit machine then verify the Application Pool is set to run in 64-bit mode (the default). If it has been set to run in 32-bit mode then you'll need to replace the 64-bit ServletExec_Adapter.dll with the 32-bit version in C:\InetPub\Scripts.
- Verify in IIS that a Scripts virtual directory exists under the web site you are trying to hit and it maps to C:\InetPub\Scripts. Check its properties to make sure the Execute permissions are set to Scripts and Executables.
- Verify ServletExec is listed as a Web Service Extension with a status of Allowed. You should also view the extensions properties and verify Required Files points to C:\InetPub\Scripts\ServletExec_Adapter.dll.
- Verify ServletExec_Adapter.dll is listed as an ISAPI filter. This is done by right-clicking on Web Sites in inetmgr and selecting Properties. Select ISAPI Filters tab and verify ServletExec shows up as a filter. Note that the ServletExec filter will have an unknown status and priority until the first servlet or JSP request is processed.
- Verify the following file exists: C:\Program Files\New Atlanta\ServletExec AS\config\webadapter.properties.
- If all of these look correct and the problem still occurs then check the Event Viewer for errors.
- You can also check for adapter error messages by using DBMON if you are logged in locally to the server or DebugView if you are logged in remotely using remote desktop. In order to use DebugView you'll need to download and install it from http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx. Here are the steps:
- Double-click on DBMON.EXE which can be found in the ServletExec installation directory or launch DebugView. If you are using DebugView then you'll need to set Capture\Capture Global Win32 from the DebugView menus. Note that DBMON and DebugView should not be running at the same time.
- Restart the IIS Admin Service from the Services Control Panel.
- From a browser, enter the URL http://127.0.0.1/servlet/TestServlet.
- If the adapter was loaded properly then you will see messages like the following:
1932: The ServletExec-ISAPI Adapter for ServletExec 6.0 is initializing...
1932: About to read C:\Program Files\New Atlanta\ServletExec AS\config\webadapter.properties...
1932: Done reading C:\Program Files\New Atlanta\ServletExec AS\config\webadapter.properties.
1932: The ServletExec-ISAPI Adapter for ServletExec 6.0 has initialized.