Servlet Express Faq

General

  1. What are servlets ?
  2. What is a servlet engine ?
  3. So What is Servlet Express ?
  4. What are the supported servers ?
  5. What are the supported platforms ?
  6. Where can I ask questions ?

Installation

  1. Why do I have to put the stub dll in System32 directory ?
  2. Why do I have to update the system path ?
  3. Why mess with another Java classpath ?
  4. The server can not find javai.dll (or other Java related dll), what to do ?
  5. The server can not find my classes, what to do ?
  6. Something went wrong, what should I do ?

ICS

  1. The server returns me a message saying that the server did not perform any operation, what to do ?

IIS

  1. When I try to access a servlet the server provide me a binary content of a file, what to do ?

What are servlets ?

Servlets as defined by sun are : In short, a servlet is to the server what the applet is to the client browser, servlet is a Java class that can be used to dynamically extend the server's functionality. Servlets have a standard interface defined in the package java.servlet.  More servlet related information can be found at here.

What is a servlet engine ?

As previously mentioned a servlet extends the operation of a server. However there need to be an object in the server that takes care to the servlets. This object should load the servlets, give them control over the execution etc, this object is the servlet engine. In short the servlet engine is serving as a shell to the servlets, supply them with their needs and executes them when the time comes. Currently the only servers with built in servlet engine are Jigsaw and Java Server a Java powered Web server in beta stage.

None of the existing commercial web servers has a full servlet engine. Netscape has a Java VM imbedded in it's server, however this is an old, non standard VM and developers find it hard to work with.

So What is Servlet Express ?

Servlet Express is a servlet engine plug-in, developed to be used by current web servers. By plugging Servlet Express into your every day Web Server you can turn it into a Java enabled web server. Current versions of Servlet Express works on IIS 2.0, 3.0 by Microsoft, FastTrack 2.01 Enterprise 2.01 and Enterprise 3.0b3  by Netscape (on WindowsNT) and also ICS 4.1.1,  ICS 4.2 and ICS 4.2.1 by I.B.M. A developer wishing to develop server extensions with Java can plug in Servlet Express and exploit the power of Java.

The strong points in Servlet Express are are those :

  1. In process plug in. Unlike other methods to extend web servers using Java, Servlet Express is an inprocess plug in. This give you better performance.
  2. Uses J.D.K 1.1/1.1.1. You van use the most advanced J.D.K.
  3. Simple installation. All you need is the J.D.K, 2 Dlls and one zip file.

Why are servlets good ?

Well this is an invited question, servlets are good for several reasons:
  1. If you are using an in process Servlet Engine (such as Servlet Express), the servlet is running in the context of the server process. This saves the creation of a new cgi process to serve an incoming request.
  2. The servlet are written in Java, a stable secure language. It is not reasonable that the servlet will kill the server process because of a programming error.
  3. The servlets enable ISV's to create complicated high performance cross platform web applications. The web is one of the places where writing for a single platform is not enough, you must program for cross platform or you will find yourself with several different versions for the same program.

What are the supported servers ?

The supported servers are:
  1. IIS 2.0, 3.0 by Microsoft.
  2. FastTrack 2.01 Enterprise 2.01 and Enterprise 3.0b3  by Netscape.
  3. ICS 4.1.1,  ICS 4.2 and ICS 4.2.1 by I.B.M.
  4. ICS 4.2.1.1 bt I.B.M on Windows95.

What are the supported platforms ?

Currently only WindowsNT is widely supported. Windows95 is supported for the beta version of ICS4.2.1.1.

Where can I ask questions ?

You can ask quesions in the CommunityXchange and I will try to answer them.

Why do I have to put the stub dll in System32 directory ?

You should place the stub dlls in a location where the server will find them (and be able to load them), such a place is the \winnt\System32 directory.

Why do I have to update the system path with the Java location?

The servlet engine is using the Java VM provided by the jdk. The dlls of the Java VM are located in the jdk\bin directory so you should add this directory to the path. Since the server is a system process you should update the system path.

Why mess with another Java classpath ?

The reason is that the classpath of the server may not fit the needs of the individual users, so instead of adding the server related classes to the system classpath we introduced the servlets.cnf classpath.

The server can not find javai.dll (or other Java related dll), what to do ?

Add the jdk1.1\bin directory to the system path and reboot.

The server can not find my classes, what to do ?

Your classes are missing in the classpath, add them to the classpath entry in servlets.cnf.

Something went wrong, what should I do ?

Since you do not really know what went wrong you should enable the logging. By looking at the log file you will have a better understanding. After gaining this understanding you should go back to the FAQ.

The server returns me a message saying that the server did not perform any operation, what to do ?

Under ICS you can configure the operation of the servlet engine in two ways (look at the configuration instructions). If you use the "service" way and the path related to the AdpterService is not associated with a servlet the servlet will produce the above response.

When I try to access a servlet the server provide me a binary content of a file, what to do ?

Under IIS you should put the file adpter.dll under the root directory. If adpter.dll is not located in a place where it can be executed, the server will return adpter.dll as a result of the request. You should add execution permissions to the location of adpter.dll.