You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Stuart MacPherson <ap...@dsl.pipex.com> on 2002/08/28 22:38:31 UTC

RE: First Servlet 404 error

In your JSP form change this:

<form name="loginForm" method="post" action="servlet/com.onjava.login">
    ......
     </form>


to this:

<form name="loginForm" method="POST" action="com.onjava.login">
    ......
     </form>

[Note the capitals in POST also]




-----Original Message-----
From: Jim Si [mailto:Jim.Si@CalgaryHealthRegion.ca] 
Sent: 28 August 2003 21:37
To: Tomcat Users List
Subject: First Servlet 404 error

It is difficult to get my first servlet working. I got HTTP Status 404 -
/onjava/servlet/com.onjava.login error.  Maybe something I did not get it
right.
Here are the things I have.

Tomcat 4.1.27

In conf/server.xml, I added the following line.
      <Context className="org.apache.catalina.core.StandardContext"
crossContext="true" reloadable="true"
mapperClass="org.apache.catalina.core.StandardContextMapper"
useNaming="true"
debug="0" swallowOutput="false" privileged="false" displayName="On Java
Example"
wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="onjava"
cookies="true" path="/onjava" cachingAllowed="true"
charsetMapperClass="org.apache.catalina.util.CharsetMapper">
        </Context>

In conf/web.xml, I uncomment the invoker mapping, i.e.
    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

The I have login.jsp and welcome.jsp file under webapps/onjava directory.
In login.jsp, I have the following code
     <form name="loginForm" method="post" action="servlet/com.onjava.login">
    ......
     </form>

I have login.java file with package statement on top.
package com.onjava;
I compiled the code and move the login.class file into
webapps/onjava/Web-inf/classes/com/onjava directory.

In webapps/Web-inf/web.xml file,  I have the following line of code.
  <?xml version="1.0" encoding="ISO-8859-1" ?>
  <!DOCTYPE web-app (View Source for full doctype...)>
- <web-app>
- <servlet>
  <servlet-name>login</servlet-name>
  <servlet-class>com.onjava.login</servlet-class>
  </servlet>
- <servlet-mapping>
  <servlet-name>login</servlet-name>
  <url-pattern>/servlet/login</url-pattern>
  </servlet-mapping>
  </web-app>

I am able to get login.jsp by using http://localhost:8080/onjava/login.jsp.
But
when I submit it I got the HTTP status 404 -
/onjava/servlet/com.onjava.login
error.

Anything I did wrong?

Jim








---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org




Re: First Servlet 404 error

Posted by Jim Si <Ji...@CalgaryHealthRegion.ca>.
Then I got HTTP Status 500 error

description The server encountered an internal error () that prevented it from
fulfilling this request.

exception

java.lang.IllegalArgumentException: Path welcome.jsp does not start with a "/"
character
        at
org.apache.catalina.core.ApplicationContext.getRequestDispatcher(ApplicationContext.java:1179)




Stuart MacPherson wrote:

> Tomcat can usually find JSPs very easily.  Is welcome.jsp also in
> CATALINA_HOME/webapps/onjava/ ?  Try the following:
>
> private String target = "welcome.jsp";
>
> If 'onjava' is your namespace then this might work.
>
> -----Original Message-----
> From: Jim Si [mailto:Jim.Si@CalgaryHealthRegion.ca]
> Sent: 29 August 2003 19:04
> To: Tomcat Users List
> Cc: Stuart MacPherson
> Subject: Re: First Servlet 404 error
>
> Thank you Stuart for your great help.
>
> HellowWorld servlet works! But I still have one problem.
>
> I got login.jsp in the webapps\onjava directory.  It has
>     <form name="loginForm" method="POST" action="servlet/com.onjava.login">
>
> In login.java, it has
>  private String target = "/welcome.jsp";
> ...
>   // Forward the request to the target named
>   ServletContext context = getServletContext();
>   RequestDispatcher dispatcher = context.getRequestDispatcher(target);
>   dispatcher.forward(request, response);
>
> In welcome.jsp, it has very simple return statement.
>    <b>Welcome : <%= request.getAttribute("USER")
>
> In webapps\onjava\Web-inf\web.xml, I have
> <servlet>
> <servlet-name>login</servlet-name>
> <servlet-class>com.onjava.login</servlet-class>
> </servlet>
>
> <servlet-mapping>
> <servlet-name>login</servlet-name>
> <url-pattern>/servlet</url-pattern>
> </servlet-mapping>
>
> In a browser, I use http://localhost:8080/onjava/login.jsp and I got the
> login
> screen, then click on submit button.  I got the following error.
>
> HTTP Status 404 - /welcome.jsp
> description The requested resource (/welcome.jsp) is not available.
>
> Look like it runs the login class, how do I correct this problem?  Thank
> you.
>
> > Also, make sure your HelloWorld servlet is mapped-in in your webapps
> > deployment descriptor.  By the way, the folder should be called WEB-INF
> not
> > web-inf.
> >
>
> Windows somehow change WEB-INF to Web-inf automatically.  I could not use
> WEB-INF.
>
> Jim
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org


RE: First Servlet 404 error

Posted by Stuart MacPherson <ap...@dsl.pipex.com>.
Tomcat can usually find JSPs very easily.  Is welcome.jsp also in
CATALINA_HOME/webapps/onjava/ ?  Try the following:

private String target = "welcome.jsp";

If 'onjava' is your namespace then this might work.



-----Original Message-----
From: Jim Si [mailto:Jim.Si@CalgaryHealthRegion.ca] 
Sent: 29 August 2003 19:04
To: Tomcat Users List
Cc: Stuart MacPherson
Subject: Re: First Servlet 404 error

Thank you Stuart for your great help.

HellowWorld servlet works! But I still have one problem.

I got login.jsp in the webapps\onjava directory.  It has
    <form name="loginForm" method="POST" action="servlet/com.onjava.login">

In login.java, it has
 private String target = "/welcome.jsp";
...
  // Forward the request to the target named
  ServletContext context = getServletContext();
  RequestDispatcher dispatcher = context.getRequestDispatcher(target);
  dispatcher.forward(request, response);

In welcome.jsp, it has very simple return statement.
   <b>Welcome : <%= request.getAttribute("USER")

In webapps\onjava\Web-inf\web.xml, I have
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.onjava.login</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>

In a browser, I use http://localhost:8080/onjava/login.jsp and I got the
login
screen, then click on submit button.  I got the following error.

HTTP Status 404 - /welcome.jsp
description The requested resource (/welcome.jsp) is not available.

Look like it runs the login class, how do I correct this problem?  Thank
you.

> Also, make sure your HelloWorld servlet is mapped-in in your webapps
> deployment descriptor.  By the way, the folder should be called WEB-INF
not
> web-inf.
>

Windows somehow change WEB-INF to Web-inf automatically.  I could not use
WEB-INF.

Jim


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org




Re: First Servlet 404 error

Posted by Jim Si <Ji...@CalgaryHealthRegion.ca>.
Thank you Stuart for your great help.

HellowWorld servlet works! But I still have one problem.

I got login.jsp in the webapps\onjava directory.  It has
    <form name="loginForm" method="POST" action="servlet/com.onjava.login">

In login.java, it has
 private String target = "/welcome.jsp";
...
  // Forward the request to the target named
  ServletContext context = getServletContext();
  RequestDispatcher dispatcher = context.getRequestDispatcher(target);
  dispatcher.forward(request, response);

In welcome.jsp, it has very simple return statement.
   <b>Welcome : <%= request.getAttribute("USER")

In webapps\onjava\Web-inf\web.xml, I have
<servlet>
<servlet-name>login</servlet-name>
<servlet-class>com.onjava.login</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>login</servlet-name>
<url-pattern>/servlet</url-pattern>
</servlet-mapping>

In a browser, I use http://localhost:8080/onjava/login.jsp and I got the login
screen, then click on submit button.  I got the following error.

HTTP Status 404 - /welcome.jsp
description The requested resource (/welcome.jsp) is not available.

Look like it runs the login class, how do I correct this problem?  Thank you.

> Also, make sure your HelloWorld servlet is mapped-in in your webapps
> deployment descriptor.  By the way, the folder should be called WEB-INF not
> web-inf.
>

Windows somehow change WEB-INF to Web-inf automatically.  I could not use
WEB-INF.

Jim


RE: First Servlet 404 error

Posted by Stuart MacPherson <ap...@dsl.pipex.com>.

You didn't mention anything about a HelloWorld Servlet before.  You have not
configured the context of your webapp, and tomcat does not even know it
exists.  Create a file called onjava.xml and place it in your webapps
directory.  This should contain something along the lines of:

<context path="onjava" docBase="./onjava" debug="0" privileged="true">

Also, make sure your HelloWorld servlet is mapped-in in your webapps
deployment descriptor.  By the way, the folder should be called WEB-INF not
web-inf.

HTH
stu

-----Original Message-----
From: Jim Si [mailto:Jim.Si@CalgaryHealthRegion.ca] 
Sent: 29 August 2003 16:57
To: Tomcat Users List; Stuart MacPherson
Subject: Re: First Servlet 404 error

I tried it but it still does not work.  I even tried to put a
HelloWorld.class
file into webapps\onjava\Web-inf\classes directory and use link
http:\\localhost:8080\onjava\servlet\HelloWorld I still have the same error.

But when I put HelloWorld.class file into webapps\examples\Web-inf\classes,
then
it works.  What it might be the problem?

Jim

Stuart MacPherson wrote:

> In your JSP form change this:
>
> <form name="loginForm" method="post" action="servlet/com.onjava.login">
>     ......
>      </form>
>
> to this:
>
> <form name="loginForm" method="POST" action="com.onjava.login">
>     ......
>      </form>
>
> [Note the capitals in POST also]
>
> -----Original Message-----
> From: Jim Si [mailto:Jim.Si@CalgaryHealthRegion.ca]
> Sent: 28 August 2003 21:37
> To: Tomcat Users List
> Subject: First Servlet 404 error
>
> It is difficult to get my first servlet working. I got HTTP Status 404 -
> /onjava/servlet/com.onjava.login error.  Maybe something I did not get it
> right.
> Here are the things I have.
>
> Tomcat 4.1.27
>
> In conf/server.xml, I added the following line.
>       <Context className="org.apache.catalina.core.StandardContext"
> crossContext="true" reloadable="true"
> mapperClass="org.apache.catalina.core.StandardContextMapper"
> useNaming="true"
> debug="0" swallowOutput="false" privileged="false" displayName="On Java
> Example"
> wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="onjava"
> cookies="true" path="/onjava" cachingAllowed="true"
> charsetMapperClass="org.apache.catalina.util.CharsetMapper">
>         </Context>
>
> In conf/web.xml, I uncomment the invoker mapping, i.e.
>     <servlet-mapping>
>         <servlet-name>invoker</servlet-name>
>         <url-pattern>/servlet/*</url-pattern>
>     </servlet-mapping>
>
> The I have login.jsp and welcome.jsp file under webapps/onjava directory.
> In login.jsp, I have the following code
>      <form name="loginForm" method="post"
action="servlet/com.onjava.login">
>     ......
>      </form>
>
> I have login.java file with package statement on top.
> package com.onjava;
> I compiled the code and move the login.class file into
> webapps/onjava/Web-inf/classes/com/onjava directory.
>
> In webapps/Web-inf/web.xml file,  I have the following line of code.
>   <?xml version="1.0" encoding="ISO-8859-1" ?>
>   <!DOCTYPE web-app (View Source for full doctype...)>
> - <web-app>
> - <servlet>
>   <servlet-name>login</servlet-name>
>   <servlet-class>com.onjava.login</servlet-class>
>   </servlet>
> - <servlet-mapping>
>   <servlet-name>login</servlet-name>
>   <url-pattern>/servlet/login</url-pattern>
>   </servlet-mapping>
>   </web-app>
>
> I am able to get login.jsp by using
http://localhost:8080/onjava/login.jsp.
> But
> when I submit it I got the HTTP status 404 -
> /onjava/servlet/com.onjava.login
> error.
>
> Anything I did wrong?
>
> Jim
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org




Tomcat Hangs at Startup

Posted by Mike Duffy <md...@yahoo.com>.
I am running Tomcat 4.1.27 on Windows XP.

I am experiencing serious hang times at startup.

Has anyone seen this before?  It hangs right after the following block:



Aug 29, 2003 5:36:30 PM org.apache.commons.modeler.Registry loadRegistry
INFO: Loading registry information
Aug 29, 2003 5:36:30 PM org.apache.commons.modeler.Registry getRegistry
INFO: Creating new Registry instance
Aug 29, 2003 5:36:38 PM org.apache.commons.modeler.Registry getServer
INFO: Creating MBeanServer
Aug 29, 2003 5:36:39 PM org.apache.coyote.http11.Http11Protocol init
INFO: Initializing Coyote HTTP/1.1 on port 80
Starting service Tomcat-Standalone
Apache Tomcat/4.1.27


It hangs again after the following block:


Aug 29, 2003 5:38:29 PM org.apache.struts.tiles.TilesPlugin init
INFO: Tiles definition factory loaded for module ''.
Aug 29, 2003 5:38:29 PM org.apache.struts.validator.ValidatorPlugIn initResources
INFO: Loading validation rules file from '/WEB-INF/validator-rules.xml'
Aug 29, 2003 5:38:30 PM org.apache.struts.validator.ValidatorPlugIn initResources
INFO: Loading validation rules file from '/WEB-INF/validation.xml'


Thanks!

Mike




__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free, easy-to-use web site design software
http://sitebuilder.yahoo.com

Re: First Servlet 404 error

Posted by Jim Si <Ji...@CalgaryHealthRegion.ca>.
I tried it but it still does not work.  I even tried to put a HelloWorld.class
file into webapps\onjava\Web-inf\classes directory and use link
http:\\localhost:8080\onjava\servlet\HelloWorld I still have the same error.

But when I put HelloWorld.class file into webapps\examples\Web-inf\classes, then
it works.  What it might be the problem?

Jim

Stuart MacPherson wrote:

> In your JSP form change this:
>
> <form name="loginForm" method="post" action="servlet/com.onjava.login">
>     ......
>      </form>
>
> to this:
>
> <form name="loginForm" method="POST" action="com.onjava.login">
>     ......
>      </form>
>
> [Note the capitals in POST also]
>
> -----Original Message-----
> From: Jim Si [mailto:Jim.Si@CalgaryHealthRegion.ca]
> Sent: 28 August 2003 21:37
> To: Tomcat Users List
> Subject: First Servlet 404 error
>
> It is difficult to get my first servlet working. I got HTTP Status 404 -
> /onjava/servlet/com.onjava.login error.  Maybe something I did not get it
> right.
> Here are the things I have.
>
> Tomcat 4.1.27
>
> In conf/server.xml, I added the following line.
>       <Context className="org.apache.catalina.core.StandardContext"
> crossContext="true" reloadable="true"
> mapperClass="org.apache.catalina.core.StandardContextMapper"
> useNaming="true"
> debug="0" swallowOutput="false" privileged="false" displayName="On Java
> Example"
> wrapperClass="org.apache.catalina.core.StandardWrapper" docBase="onjava"
> cookies="true" path="/onjava" cachingAllowed="true"
> charsetMapperClass="org.apache.catalina.util.CharsetMapper">
>         </Context>
>
> In conf/web.xml, I uncomment the invoker mapping, i.e.
>     <servlet-mapping>
>         <servlet-name>invoker</servlet-name>
>         <url-pattern>/servlet/*</url-pattern>
>     </servlet-mapping>
>
> The I have login.jsp and welcome.jsp file under webapps/onjava directory.
> In login.jsp, I have the following code
>      <form name="loginForm" method="post" action="servlet/com.onjava.login">
>     ......
>      </form>
>
> I have login.java file with package statement on top.
> package com.onjava;
> I compiled the code and move the login.class file into
> webapps/onjava/Web-inf/classes/com/onjava directory.
>
> In webapps/Web-inf/web.xml file,  I have the following line of code.
>   <?xml version="1.0" encoding="ISO-8859-1" ?>
>   <!DOCTYPE web-app (View Source for full doctype...)>
> - <web-app>
> - <servlet>
>   <servlet-name>login</servlet-name>
>   <servlet-class>com.onjava.login</servlet-class>
>   </servlet>
> - <servlet-mapping>
>   <servlet-name>login</servlet-name>
>   <url-pattern>/servlet/login</url-pattern>
>   </servlet-mapping>
>   </web-app>
>
> I am able to get login.jsp by using http://localhost:8080/onjava/login.jsp.
> But
> when I submit it I got the HTTP status 404 -
> /onjava/servlet/com.onjava.login
> error.
>
> Anything I did wrong?
>
> Jim
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org