# Tomcat Problem.  Can't add servlets

## lostinlinux

I am trying to follow some of the guides that I have seen online but it seems that I just can't seem to get things to work.  I have created a new java class, something simple prints like hello world, I have moved it into /opt/tomcat/webapps/ROOT/WEB-INF/classes restarted the web server and try to call the class using the following URL http://localhost:8080/servlet/MyServlet and it keeps throwing an error saying the resource is not available.  I have not changed any other files like web.xml or any other config files, does anyone have any clue what could be causing this problem?

----------

## UncleTom

What you do there is not really the preferred method, I would say. Normally you should build a .war file, put it in webapps and restart tomcat. 

That said, I have just tried to do what you describe and it runs fine on my elderly tomcat 3.3a on solaris, it was not even necessary to restart tomcat.

There is probably something else in webapps/ROOT/WEB-INF/classes, like the SnoopServlet. Can you call that?

Have you specified a "package xyz" in your java file? If so, remove it for the time being.

Can you post your "hello world" example along with the error message?

----------

## lostinlinux

I can't open http://localhost:8080/servlet/SnoopServlet, I get the same error saying resource not found.  The exact error message is this

```

type Status report

message /servlet/Get_Post

description The requested resource (/servlet/Get_Post) is not available.

```

and the code is

```

import java.io.*;

import java.net.*;

import javax.servlet.*;

import javax.servlet.http.*;

import java.util.Enumeration;

public class Get_Post extends HttpServlet {

    public void init(ServletConfig config) throws ServletException {

        super.init(config);

    }

    public void destroy() {

        

    }

    

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        response.setContentType("text/html");

        PrintWriter out = response.getWriter();

        out.println("<html>");

        out.println("<head>");

        out.println("<title>Servlet</title>");

        out.println("</head>");

        out.println("<body>");

         

        out.println("</body>");

        out.println("</html>");

        

        out.close();

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        processRequest(request, response);

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        processRequest(request, response);

    }

    public String getServletInfo() {

        return "Short description";

    }

    

}

```

now I can run the example servlets that Tomcat provides that are located somewhere else, is there a chance that my web.xml file is not correct?

----------

## UncleTom

Your code looks ok and the fact that you cannot run the SnoopServlet indicates that you have some sort of configuration problem. Or my guess would be that you try to do something that was supported "out of the box" by tomcat in earlier versions and isn't anymore.

My guess would be that you have to enable the root context, see "Setting up Tomcat on you local computer for easy use" at http://segal.org/java/servlets/start.html for details.

----------

## lostinlinux

yeah I don't know what it is, perhaps I am putting files in the wrong directory, I have made those edits and still nothing

web.xml

```

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app

     PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

  <!-- ======================== Introduction ============================== -->

  <!-- This document defines default values for *all* web applications      -->

  <!-- loaded into this instance of Tomcat.  As each application is         -->

  <!-- deployed, this file is processed, followed by the                    -->

  <!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->

  <!-- applications.                                                        -->

  <!--                                                                      -->

  <!-- WARNING:  Do not configure application-specific resources here!      -->

  <!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->

  <!-- ================== Built In Servlet Definitions ==================== -->

  <!-- The default servlet for all web applications, that serves static     -->

  <!-- resources.  It processes all requests that are not mapped to other   -->

  <!-- servlets with servlet mappings (defined either here or in your own   -->

  <!-- web.xml file.  This servlet supports the following initialization    -->

  <!-- parameters (default values are in square brackets):                  -->

  <!--                                                                      -->

  <!--   debug               Debugging detail level for messages logged     -->

  <!--                       by this servlet.  [0]                          -->

  <!--                                                                      -->

  <!--   input               Input buffer size (in bytes) when reading      -->

  <!--                       resources to be served.  [2048]                -->

  <!--                                                                      -->

  <!--   listings            Should directory listings be produced if there -->

  <!--                       is no welcome file in this directory?  [true]  -->

  <!--                                                                      -->

  <!--   output              Output buffer size (in bytes) when writing     -->

  <!--                       resources to be served.  [2048]                -->

  <!--                                                                      -->

  <!--   readonly            Is this context "read only", so HTTP           -->

  <!--                       commands like PUT and DELETE are               -->

  <!--                       rejected?  [true]                              -->

  <!--                                                                      -->

  <!--   readmeFile          File name to display with the directory        -->

  <!--                       contents. [null]                               -->

  <!--                                                                      -->

  <!--  For directory listing customization. Checks localXsltFile, then     -->

  <!--  globalXsltFile, then defaults to original behavior.                 -->

  <!--                                                                      -->

  <!--   localXsltFile       Make directory listings an XML doc and         -->

  <!--                       pass the result to this style sheet residing   -->

  <!--                       in that directory. This overrides              -->

  <!--                        globalXsltFile[null]                          -->

  <!--                                                                      -->

  <!--   globalXsltFile      Site wide configuration version of             -->

  <!--                       localXsltFile This argument is expected        -->

  <!--                       to be a physical file. [null]                  -->

  <!--                                                                      -->

  <!--                                                                      -->

    <servlet>

        <servlet-name>default</servlet-name>

        <servlet-class>

          org.apache.catalina.servlets.DefaultServlet

        </servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <init-param>

            <param-name>listings</param-name>

            <param-value>true</param-value>

        </init-param>

        <load-on-startup>1</load-on-startup>

    </servlet>

  <!-- The "invoker" servlet, which executes anonymous servlet classes      -->

  <!-- that have not been defined in a web.xml file.  Traditionally, this   -->

  <!-- servlet is mapped to URL pattern "/servlet/*", but you can map it    -->

  <!-- to other patterns as well.  The extra path info portion of such a    -->

  <!-- request must be the fully qualified class name of a Java class that  -->

  <!-- implements Servlet (or extends HttpServlet), or the servlet name     -->

  <!-- of an existing servlet definition.     This servlet supports the     -->

  <!-- following initialization parameters (default values are in square    -->

  <!-- brackets):                                                           -->

  <!--                                                                      -->

  <!--   debug               Debugging detail level for messages logged     -->

  <!--                       by this servlet.  [0]                          -->

    <servlet>

        <servlet-name>invoker</servlet-name>

        <url-patern>/servlet/*</url-pattern>

        <servlet-class>

          org.apache.catalina.servlets.InvokerServlet

        </servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>0</param-value>

        </init-param>

        <load-on-startup>2</load-on-startup>

    </servlet>

  <!-- The JSP page compiler and execution servlet, which is the mechanism  -->

  <!-- used by Tomcat to support JSP pages.  Traditionally, this servlet    -->

  <!-- is mapped to URL patterh "*.jsp".  This servlet supports the         -->

  <!-- following initialization parameters (default values are in square    -->

  <!-- brackets):                                                           -->

  <!--                                                                      -->

  <!--   checkInterval       If development is false and reloading is true, -->

  <!--                       background compiles are enabled. checkInterval -->

  <!--                       is the time in seconds between checks to see   -->

  <!--                       if a JSP page needs to be recompiled. [300]    -->

  <!--                                                                      -->

  <!--   compiler            Which compiler Ant should use to compile JSP   -->

  <!--                       pages.  See the Ant documentation for more     -->

  <!--                       information. [javac]                           -->

  <!--                                                                      -->

  <!--   classdebuginfo      Should the class file be compiled with         -->

  <!--                       debugging information?  [true]                 -->

  <!--                                                                      -->

  <!--   classpath           What class path should I use while compiling   -->

  <!--                       generated servlets?  [Created dynamically      -->

  <!--                       based on the current web application]          -->

  <!--                                                                      -->

  <!--   development         Is Jasper used in development mode (will check -->

  <!--                       for JSP modification on every access)?  [true] -->

  <!--                                                                      -->

  <!--   enablePooling       Determines whether tag handler pooling is      -->

  <!--                       enabled  [true]                                -->

  <!--                                                                      -->

  <!--   fork                Tell Ant to fork compiles of JSP pages so that -->

  <!--                       a separate JVM is used for JSP page compiles   -->

  <!--                       from the one Tomcat is running in. [true]      -->

  <!--                                                                      -->

  <!--   ieClassId           The class-id value to be sent to Internet      -->

  <!--                       Explorer when using <jsp:plugin> tags.         -->

  <!--                       [clsid:8AD9C840-044E-11D1-B3E9-00805F499D93]   -->

  <!--                                                                      -->

  <!--   javaEncoding        Java file encoding to use for generating java  -->

  <!--                       source files. [UTF8]                           -->

  <!--                                                                      -->

  <!--   keepgenerated       Should we keep the generated Java source code  -->

  <!--                       for each page instead of deleting it? [true]   -->

  <!--                                                                      -->

  <!--   mappedfile          Should we generate static content with one     -->

  <!--                       print statement per input line, to ease        -->

  <!--                       debugging?  [true]                            -->

  <!--                                                                      -->

  <!--   trimSpaces          Should white spaces in template text between   -->

  <!--                       actions or directives be trimmed?  [false]     -->

  <!--                                                                      -->

  <!--   reloading           Should Jasper check for modified JSPs?  [true] -->

  <!--                                                                      -->

  <!--   suppressSmap        Should the generation of SMAP info for JSR45   -->

  <!--                       debugging be suppressed?  [false]              -->

  <!--                                                                      -->

  <!--   dumpSmap            Should the SMAP info for JSR45 debugging be    -->

  <!--                       dumped to a file? [false]                      -->

  <!--                       False if suppressSmap is true                  -->

  <!--                                                                      -->

  <!--   genStrAsCharArray   Should text strings be generated as char       -->

  <!--                       arrays, to improve performance in some cases?  -->

  <!--                       [false]                                        -->

  <!--                                                                      -->

  <!--   scratchdir          What scratch directory should we use when      -->

  <!--                       compiling JSP pages?  [default work directory  -->

  <!--                       for the current web application]               -->

  <!--                                                                      -->

  <!--   tagpoolMaxSize      The maximum tag handler pool size  [5]         -->

  <!--                                                                      -->

  <!--   xpoweredBy          Determines whether X-Powered-By response       -->

  <!--                       header is added by generated servlet  [false]  -->

  <!--                                                                      -->

  <!-- If you wish to use Jikes to compile JSP pages:                       -->

  <!--   Set the init parameter "compiler" to "jikes".  Define              -->

  <!--   the property "-Dbuild.compiler.emacs=true" when starting Tomcat    -->

  <!--   by adding the above to your CATALINA_OPTS environment variable.    -->

  <!--   If you get an error reporting that jikes can't use UTF8 encoding,  -->

  <!--   try setting the init parameter "javaEncoding" to "ISO-8859-1".     -->

    <servlet>

        <servlet-name>jsp</servlet-name>

        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>

        <init-param>

            <param-name>fork</param-name>

            <param-value>false</param-value>

        </init-param>

        <init-param>

            <param-name>xpoweredBy</param-name>

            <param-value>false</param-value>

        </init-param>

        <load-on-startup>3</load-on-startup>

    </servlet>

  <!-- Server Side Includes processing servlet, which processes SSI         -->

  <!-- directives in HTML pages consistent with similar support in web      -->

  <!-- servers like Apache.  Traditionally, this servlet is mapped to       -->

  <!-- URL pattern "*.shtml".  This servlet supports the following          -->

  <!-- initialization parameters (default values are in square brackets):   -->

  <!--                                                                      -->

  <!--   buffered            Should output from this servlet be buffered?   -->

  <!--                       (0=false, 1=true)  [0]                         -->

  <!--                                                                      -->

  <!--   debug               Debugging detail level for messages logged     -->

  <!--                       by this servlet.  [0]                          -->

  <!--                                                                      -->

  <!--   expires             The number of seconds before a page with SSI   -->

  <!--                       directives will expire.  [No default]          -->

  <!--                                                                      -->

  <!--   isVirtualWebappRelative                                            -->

  <!--                       Should "virtual" paths be interpreted as       -->

  <!--                       relative to the context root, instead of       -->

  <!--                       the server root?  (0=false, 1=true) [0]        -->

  <!--                                                                      -->

  <!--                                                                      -->

  <!-- IMPORTANT: To use the SSI servlet, you also need to rename the       -->

  <!--            $CATALINA_HOME/server/lib/servlets-ssi.renametojar file   -->

  <!--            to $CATALINA_HOME/server/lib/servlets-ssi.jar             -->

<!--

    <servlet>

        <servlet-name>ssi</servlet-name>

        <servlet-class>

          org.apache.catalina.ssi.SSIServlet

        </servlet-class>

        <init-param>

          <param-name>buffered</param-name>

          <param-value>1</param-value>

        </init-param>

        <init-param>

          <param-name>debug</param-name>

          <param-value>0</param-value>

        </init-param>

        <init-param>

          <param-name>expires</param-name>

          <param-value>666</param-value>

        </init-param>

        <init-param>

          <param-name>isVirtualWebappRelative</param-name>

          <param-value>0</param-value>

        </init-param>

        <load-on-startup>4</load-on-startup>

    </servlet>

-->

  <!-- Common Gateway Includes (CGI) processing servlet, which supports     -->

  <!-- execution of external applications that conform to the CGI spec      -->

  <!-- requirements.  Typically, this servlet is mapped to the URL pattern  -->

  <!-- "/cgi-bin/*", which means that any CGI applications that are         -->

  <!-- executed must be present within the web application.  This servlet   -->

  <!-- supports the following initialization parameters (default values     -->

  <!-- are in square brackets):                                             -->

  <!--                                                                      -->

  <!--   cgiPathPrefix       The CGI search path will start at              -->

  <!--                       webAppRootDir + File.separator + this prefix.  -->

  <!--                       [WEB-INF/cgi]                                  -->

  <!--                                                                      -->

  <!--   clientInputTimeout  The time (in milliseconds) to wait for input   -->

  <!--                       from the browser before assuming that there    -->

  <!--                       is none.  [100]                                -->

  <!--                                                                      -->

  <!--   debug               Debugging detail level for messages logged     -->

  <!--                       by this servlet.  [0]                          -->

  <!--                                                                      -->

  <!--   executable          Name of the exectuable used to run the script. -->

  <!--                       [perl]                                         -->

  <!--                                                                      -->

  <!-- IMPORTANT: To use the CGI servlet, you also need to rename the       -->

  <!--            $CATALINA_HOME/server/lib/servlets-cgi.renametojar file   -->

  <!--            to $CATALINA_HOME/server/lib/servlets-cgi.jar             -->

<!--

    <servlet>

        <servlet-name>cgi</servlet-name>

        <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

        <init-param>

          <param-name>clientInputTimeout</param-name>

          <param-value>100</param-value>

        </init-param>

        <init-param>

          <param-name>debug</param-name>

          <param-value>6</param-value>

        </init-param>

        <init-param>

          <param-name>cgiPathPrefix</param-name>

          <param-value>WEB-INF/cgi</param-value>

        </init-param>

         <load-on-startup>5</load-on-startup>

    </servlet>

-->

  <!-- ================ Built In Servlet Mappings ========================= -->

  <!-- The servlet mappings for the built in servlets defined above.  Note  -->

  <!-- that, by default, the CGI and SSI servlets are *not* mapped.  You    -->

  <!-- must uncomment these mappings (or add them to your application's own -->

  <!-- web.xml deployment descriptor) to enable these services              -->

    <!-- The mapping for the default servlet -->

    <servlet-mapping>

        <servlet-name>default</servlet-name>

        <url-pattern>/</url-pattern>

    </servlet-mapping>

    <!-- The mapping for the invoker servlet -->

<!--

    <servlet-mapping>

        <servlet-name>invoker</servlet-name>

        <url-pattern>/servlet/*</url-pattern>

    </servlet-mapping>

-->

    <!-- The mapping for the JSP servlet -->

    <servlet-mapping>

        <servlet-name>jsp</servlet-name>

        <url-pattern>*.jsp</url-pattern>

    </servlet-mapping>

    <servlet-mapping>

        <servlet-name>jsp</servlet-name>

        <url-pattern>*.jspx</url-pattern>

    </servlet-mapping>

    <!-- The mapping for the SSI servlet -->

<!--

    <servlet-mapping>

        <servlet-name>ssi</servlet-name>

        <url-pattern>*.shtml</url-pattern>

    </servlet-mapping>

-->

    <!-- The mapping for the CGI Gateway servlet -->

<!--

    <servlet-mapping>

        <servlet-name>cgi</servlet-name>

        <url-pattern>/cgi-bin/*</url-pattern>

    </servlet-mapping>

-->

  <!-- ==================== Default Session Configuration ================= -->

  <!-- You can set the default session timeout (in minutes) for all newly   -->

  <!-- created sessions by modifying the value below.                       -->

    <session-config>

        <session-timeout>30</session-timeout>

    </session-config>

  <!-- ===================== Default MIME Type Mappings =================== -->

  <!-- When serving static resources, Tomcat will automatically generate    -->

  <!-- a "Content-Type" header based on the resource's filename extension,  -->

  <!-- based on these mappings.  Additional mappings can be added here (to  -->

  <!-- apply to all web applications), or in your own application's web.xml -->

  <!-- deployment descriptor.                                               -->

    <mime-mapping>

        <extension>abs</extension>

        <mime-type>audio/x-mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ai</extension>

        <mime-type>application/postscript</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>aif</extension>

        <mime-type>audio/x-aiff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>aifc</extension>

        <mime-type>audio/x-aiff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>aiff</extension>

        <mime-type>audio/x-aiff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>aim</extension>

        <mime-type>application/x-aim</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>art</extension>

        <mime-type>image/x-jg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>asf</extension>

        <mime-type>video/x-ms-asf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>asx</extension>

        <mime-type>video/x-ms-asf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>au</extension>

        <mime-type>audio/basic</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>avi</extension>

        <mime-type>video/x-msvideo</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>avx</extension>

        <mime-type>video/x-rad-screenplay</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>bcpio</extension>

        <mime-type>application/x-bcpio</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>bin</extension>

        <mime-type>application/octet-stream</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>bmp</extension>

        <mime-type>image/bmp</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>body</extension>

        <mime-type>text/html</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>cdf</extension>

        <mime-type>application/x-cdf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>cer</extension>

        <mime-type>application/x-x509-ca-cert</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>class</extension>

        <mime-type>application/java</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>cpio</extension>

        <mime-type>application/x-cpio</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>csh</extension>

        <mime-type>application/x-csh</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>css</extension>

        <mime-type>text/css</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>dib</extension>

        <mime-type>image/bmp</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>doc</extension>

        <mime-type>application/msword</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>dtd</extension>

        <mime-type>text/plain</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>dv</extension>

        <mime-type>video/x-dv</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>dvi</extension>

        <mime-type>application/x-dvi</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>eps</extension>

        <mime-type>application/postscript</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>etx</extension>

        <mime-type>text/x-setext</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>exe</extension>

        <mime-type>application/octet-stream</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>gif</extension>

        <mime-type>image/gif</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>gtar</extension>

        <mime-type>application/x-gtar</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>gz</extension>

        <mime-type>application/x-gzip</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>hdf</extension>

        <mime-type>application/x-hdf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>hqx</extension>

        <mime-type>application/mac-binhex40</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>htc</extension>

        <mime-type>text/x-component</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>htm</extension>

        <mime-type>text/html</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>html</extension>

        <mime-type>text/html</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>hqx</extension>

        <mime-type>application/mac-binhex40</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ief</extension>

        <mime-type>image/ief</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jad</extension>

        <mime-type>text/vnd.sun.j2me.app-descriptor</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jar</extension>

        <mime-type>application/java-archive</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>java</extension>

        <mime-type>text/plain</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jnlp</extension>

        <mime-type>application/x-java-jnlp-file</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jpe</extension>

        <mime-type>image/jpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jpeg</extension>

        <mime-type>image/jpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jpg</extension>

        <mime-type>image/jpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>js</extension>

        <mime-type>text/javascript</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jsf</extension>

        <mime-type>text/plain</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>jspf</extension>

        <mime-type>text/plain</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>kar</extension>

        <mime-type>audio/x-midi</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>latex</extension>

        <mime-type>application/x-latex</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>m3u</extension>

        <mime-type>audio/x-mpegurl</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mac</extension>

        <mime-type>image/x-macpaint</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>man</extension>

        <mime-type>application/x-troff-man</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>me</extension>

        <mime-type>application/x-troff-me</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mid</extension>

        <mime-type>audio/x-midi</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>midi</extension>

        <mime-type>audio/x-midi</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mif</extension>

        <mime-type>application/x-mif</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mov</extension>

        <mime-type>video/quicktime</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>movie</extension>

        <mime-type>video/x-sgi-movie</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mp1</extension>

        <mime-type>audio/x-mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mp2</extension>

        <mime-type>audio/x-mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mp3</extension>

        <mime-type>audio/x-mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mpa</extension>

        <mime-type>audio/x-mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mpe</extension>

        <mime-type>video/mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mpeg</extension>

        <mime-type>video/mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mpega</extension>

        <mime-type>audio/x-mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mpg</extension>

        <mime-type>video/mpeg</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>mpv2</extension>

        <mime-type>video/mpeg2</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ms</extension>

        <mime-type>application/x-wais-source</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>nc</extension>

        <mime-type>application/x-netcdf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>oda</extension>

        <mime-type>application/oda</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pbm</extension>

        <mime-type>image/x-portable-bitmap</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pct</extension>

        <mime-type>image/pict</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pdf</extension>

        <mime-type>application/pdf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pgm</extension>

        <mime-type>image/x-portable-graymap</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pic</extension>

        <mime-type>image/pict</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pict</extension>

        <mime-type>image/pict</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pls</extension>

        <mime-type>audio/x-scpls</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>png</extension>

        <mime-type>image/png</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pnm</extension>

        <mime-type>image/x-portable-anymap</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>pnt</extension>

        <mime-type>image/x-macpaint</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ppm</extension>

        <mime-type>image/x-portable-pixmap</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ps</extension>

        <mime-type>application/postscript</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>psd</extension>

        <mime-type>image/x-photoshop</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>qt</extension>

        <mime-type>video/quicktime</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>qti</extension>

        <mime-type>image/x-quicktime</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>qtif</extension>

        <mime-type>image/x-quicktime</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ras</extension>

        <mime-type>image/x-cmu-raster</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>rgb</extension>

        <mime-type>image/x-rgb</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>rm</extension>

        <mime-type>application/vnd.rn-realmedia</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>roff</extension>

        <mime-type>application/x-troff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>rtf</extension>

        <mime-type>application/rtf</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>rtx</extension>

        <mime-type>text/richtext</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>sh</extension>

        <mime-type>application/x-sh</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>shar</extension>

        <mime-type>application/x-shar</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>smf</extension>

        <mime-type>audio/x-midi</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>sit</extension>

        <mime-type>application/x-stuffit</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>snd</extension>

        <mime-type>audio/basic</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>src</extension>

        <mime-type>application/x-wais-source</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>sv4cpio</extension>

        <mime-type>application/x-sv4cpio</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>sv4crc</extension>

        <mime-type>application/x-sv4crc</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>swf</extension>

        <mime-type>application/x-shockwave-flash</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>t</extension>

        <mime-type>application/x-troff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tar</extension>

        <mime-type>application/x-tar</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tcl</extension>

        <mime-type>application/x-tcl</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tex</extension>

        <mime-type>application/x-tex</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>texi</extension>

        <mime-type>application/x-texinfo</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>texinfo</extension>

        <mime-type>application/x-texinfo</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tif</extension>

        <mime-type>image/tiff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tiff</extension>

        <mime-type>image/tiff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tr</extension>

        <mime-type>application/x-troff</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>tsv</extension>

        <mime-type>text/tab-separated-values</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>txt</extension>

        <mime-type>text/plain</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ulw</extension>

        <mime-type>audio/basic</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>ustar</extension>

        <mime-type>application/x-ustar</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>xbm</extension>

        <mime-type>image/x-xbitmap</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>xml</extension>

        <mime-type>text/xml</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>xpm</extension>

        <mime-type>image/x-xpixmap</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>xsl</extension>

        <mime-type>text/xml</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>xwd</extension>

        <mime-type>image/x-xwindowdump</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>wav</extension>

        <mime-type>audio/x-wav</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>svg</extension>

        <mime-type>image/svg+xml</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>svgz</extension>

        <mime-type>image/svg+xml</mime-type>

    </mime-mapping>

    <mime-mapping>

        <!-- Wireless Bitmap -->

        <extension>wbmp</extension>

        <mime-type>image/vnd.wap.wbmp</mime-type>

    </mime-mapping>

    <mime-mapping>

        <!-- WML Source -->

        <extension>wml</extension>

        <mime-type>text/vnd.wap.wml</mime-type>

    </mime-mapping>

    <mime-mapping>

        <!-- Compiled WML -->

        <extension>wmlc</extension>

        <mime-type>application/vnd.wap.wmlc</mime-type>

    </mime-mapping>

    <mime-mapping>

        <!-- WML Script Source -->

        <extension>wmls</extension>

        <mime-type>text/vnd.wap.wmlscript</mime-type>

    </mime-mapping>

    <mime-mapping>

        <!-- Compiled WML Script -->

        <extension>wmlscriptc</extension>

        <mime-type>application/vnd.wap.wmlscriptc</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>wrl</extension>

        <mime-type>x-world/x-vrml</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>Z</extension>

        <mime-type>application/x-compress</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>z</extension>

        <mime-type>application/x-compress</mime-type>

    </mime-mapping>

    <mime-mapping>

        <extension>zip</extension>

        <mime-type>application/zip</mime-type>

    </mime-mapping>

  <!-- ==================== Default Welcome File List ===================== -->

  <!-- When a request URI refers to a directory, the default servlet looks  -->

  <!-- for a "welcome file" within that directory and, if present,          -->

  <!-- to the corresponding resource URI for display.  If no welcome file   -->

  <!-- is present, the default servlet either serves a directory listing,   -->

  <!-- or returns a 404 status, depending on how it is configured.          -->

  <!--                                                                      -->

  <!-- If you define welcome files in your own application's web.xml        -->

  <!-- deployment descriptor, that list *replaces* the list configured      -->

  <!-- here, so be sure that you include any of the default values that     -->

  <!-- you wish to include.                                                 -->

    <welcome-file-list>

        <welcome-file>index.html</welcome-file>

        <welcome-file>index.htm</welcome-file>

        <welcome-file>index.jsp</welcome-file>

    </welcome-file-list>

</web-app>

```

My Server.xml is too big to list here, so here is a link for anyone interested

http://24.228.11.59:800/server.xml[/url]

----------

## Voltago

lostinlinux, you might want to take a look at netbeans. It is, if you haven't already encountered it, a free java ide by sun (like OpenOffice it is OSS), and it has a very convenient template system to create J2EE Web Modules, which are the natural haunt of your average servlet (you can't just drop a servlet 'into' a serlvet container and expect it to work).

Also, you can pack these web modules with a mouseclick into war files which you can just drop into your webapps directory. And best of all, netbeans features an integrated tomcat server, so you can run and test your web module from inside your graphical environment.

Some steps to get you started:

1. emerge netbeans, start

2. create a new project, mount a directory

3. create a new web module (New -> Servlet&JSP templates -> Web Module)

4. create a new servlet, netbeans will configure your web module so that your servlet will become available upon execution, look at the WEB-INF/web.xml file before and after to understand what's going on...

5. execute the web module: internal tomcat is started

6. open browser, localhost:8081/<servletnamegoeshere>

Have fun!

----------

## lostinlinux

ok, u are the man, turns out there must have been somethign wrong with my web.xml file so by doing what you said (use netbeans) I was able to use the internal server to run the stuff, I then copied everything netbeans made to the tomcat folder and it loads like a champ,thanks a bunch, I really appreciate it

----------

## lostinlinux

Ok, I had this working and now I don't know what happened.  When I try to run the internal server in netbeans and I try to acess the a servlet I made I keep getting error 503 servlet not availabe, how can I fix this?

----------

## lostinlinux

I just noticed this too, netbeans throws this error

2004-03-05 21:02:15 StandardWrapperValve[Test]: Servlet Test is currently unavailable

----------

## Voltago

Hmmm... did you compile all classes before running the server? Did you mess with the server config? What is the stack trace of your exception? Is there a root cause of this exception specified? 

Perhaps you should (if you have not done it already) rewrite your processRequest method this way for more debug info:

```
public <something> processRequest(<someargs>)

{

   try

   {

        yaddayaddayourcodegoeshere

   }

   catch(Exception ex)

   {

        ex.printStackTrace();

        throw new JspException(ex);  

   }

}
```

Sorry if this is a bit too basic for you, but then again, I don't know the level of your java skills...

----------

## lostinlinux

I had to comment out the JSPException it was causing compile errors.  I really don't understand why this just went to crap all a sudden.  

```

public class Test extends HttpServlet {

    

    public void init(ServletConfig config) throws ServletException {

        super.init(config);

        

    }

    

    public void destroy() {

        

    }

    

    protected void processRequest(HttpServletRequest request, HttpServletResponse response) {

        try {

            response.setContentType("text/html");

            PrintWriter out = response.getWriter();

        

        out.println("<html>");

        out.println("<head>");

        out.println("<title>Servlet</title>");

        out.println("</head>");

        out.println("<body>");

         

        out.println("</body>");

        out.println("</html>");

        

            out.close();

            

        }

        catch(Exception ex) {

            ex.printStackTrace();

            //throw new JspException(ex);

        }

    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        processRequest(request, response);

    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response)

    throws ServletException, IOException {

        processRequest(request, response);

    }

    

    /** Returns a short description of the servlet.

     */

    public String getServletInfo() {

        return "Short description";

    }

    

}

```

----------

## lostinlinux

this is killing me what does Servlet Test is currently unavailable mean?  and how can I fix this?  Yesterday the applets were workign fine and today crap.  All of my java compiles fine and if I write this as a command line type file instead of a servlet I get no problems.  Does anyone have any clue as to what could be causing this?

----------

## Voltago

Sorry, this should be ServletException, not JspException... otherwise I can not help you, I'm afraid.

----------

## lostinlinux

For some reason net beans wasn't addign the servlet to the class dir, I changed that and now they work again.  Thanks for the help.  One last quick question, how can I add a jar file so I can use it in my servlet?

----------

## lostinlinux

Thank god for google, got the answer, thanks for all the help everyone

----------

## arkane

 *lostinlinux wrote:*   

> Thank god for google, got the answer, thanks for all the help everyone

 

What was the fix?

Just in case someone else runs into the same problem, and does a search for it.

----------

