Servlet Express Faq
General
-
What are servlets ?
-
What is a servlet engine ?
-
So What is Servlet Express ?
-
What are the supported servers
?
-
What are the supported platforms
?
-
Where can I ask questions ?
Installation
-
Why do I have
to put the stub dll in System32 directory ?
-
Why do I have
to update the system path ?
-
Why mess with another
Java classpath ?
-
The server
can not find javai.dll (or other Java related dll), what to do ?
-
The server
can not find my classes, what to do ?
-
Something went wrong,
what should I do ?
ICS
-
The server returns
me a message saying that the server did not perform any operation, what
to do ?
IIS
-
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 :
"... objects which conform to a specific interface that can be plugged
into a Java-based server. Servlets are similar to applets in that they
are object byte codes that can be dynamically loaded off the net, but differ
from applets in that they are faceless objects (without any graphics).
They serve as platform independent dynamically load able plug able helper
byte code objects on the server side. Servlets are a first step towards
agents, but they differ from agents in that they need to be explicitly
invoked on and moved..."
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 :
-
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.
-
Uses J.D.K 1.1/1.1.1. You van use the most advanced J.D.K.
-
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:
-
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.
-
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.
-
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:
-
IIS 2.0, 3.0 by Microsoft.
-
FastTrack 2.01 Enterprise 2.01 and Enterprise 3.0b3 by Netscape.
-
ICS 4.1.1, ICS 4.2 and ICS 4.2.1 by I.B.M.
-
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.