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

Faq ID 298
Product ServletExec
Category ArcIMS Users, General Info, Security
Question When I try to request my servlet, I get a response in my browser that mentions "failed to get servlet". Why?
Answer This issue most commonly occurs when you try to request a servlet named "testservlet". The cAsE used in the request URL matters to a Servlet/JSP engine (even when using an operating system that is not CaSe sensitive such as Windows). The actual name of that servlet is "TestServlet" (capital T and capital S). If this was your situation, then edit your request URL accordingly and try the request again.

Here is more information on this common pitfall:
When you request something from ServletExec, that something must first be "visible" to ServletExec. If SE does not know about your servlet, and cannot find your servlet, then you can expect to receive that response in your browser. The same would occur if you requested:

http://myHost/servlet/imaginaryNonExistantServlet

You would receive a response in your browser that mentions:

javax.servlet.ServletException: RequestDispatcher.forward()/include()
failed to get servlet: imaginaryNonExistantServlet

So if you are trying to request a servlet, and you are receiving a response like this, then make sure that you have placed the .class file for that servlet into one of the following locations:
  • the .../WEB-INF/classes/ folder of your webapp
  • or into a .jar file in the .../WEB-INF/lib/ folder of your webapp
  • or in an external library for your webapp
  • or into the "Legacy" Servlets folder (see the SE User Guide)
  • or in the main SE classpath.


If you have done this and you still can't get past this problem then make certain that you are using the proper cAsE (upper versus lower case) in your request. With a Servlet/JSP engine, CaSe matters (even on a case-insensitive Operating System such as Windows). For example if the servlet's name is TestServlet, and yet you try to request testservlet (all lower-case) then you can expect SE to tell you that it could not find that servlet.

Note: that if you are using SE with ESRI's ArcIMS product, your particular response may be saying something like this:
javax.servlet.ServletException: RequestDispatcher.forward()/include() failed to get servlet: com.esri.esrimap.Esrimap

In other words, the servlet that you are likely trying to request is the one named "com.esri.esrimap.Esrimap". That servlet is the ArcIMS Servlet Connector. You should run the ArcIMS Post Installer and follow the prompts in order to have your ArcIMS Servlet Connector "hooked into" ServletExec so that SE will then know about and be able to find that servlet. That way when you request that servlet, SE will be able to execute that servlet instead of telling you that it failed to find that servlet.

Readers of this FAQ may also find SE FAQ #354 to be of interest.



   
company media information terms of use privacy policy contact us