You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Josh <jo...@globalherald.net> on 2009/10/20 18:50:46 UTC
How do I debug dispatching errors?
Hello,
I have a rather small application using servlets. I am encountering a
problem where the dispatching is not working properly. There is a
'web.xml' file that looks like the first listing below.
I have a debug statement set on the first line in the constructor of
com.mycorp.referral.servlets.CreateRelationshipServlet. However, when I
call the servlet with this URL:
http://localhost:8081/MyApp/CreateRelationshp ... the createRelationship
is not called - rather, ProcessAction is called again. I have set the
debug levels in server.xml and web.xml to 'DEBUG'... but I do not get
any errors in those logs. How can I debug the dispatcher and determine
why it's not dispatching properly?
Thanks very much!!
<?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>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.mycorp.referral.servlets.LoginServlet</servlet-class>
<!-- <init-param>
<param-name>propertyFileNameLocation</param-name>
<param-value>C:/EclipseLib/FarmersQueue.properties</param-value>
</init-param>
-->
</servlet>
<servlet>
<servlet-name>CreateRelationshipServlet</servlet-name>
<servlet-class>com.mycorp.referral.servlets.CreateRelationshipServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>ProcessActionServlet</servlet-name>
<servlet-class>com.mycorp.referral.servlets.ProcessActionServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>UpdateRelationshipServlet</servlet-name>
<servlet-class>com.mycorp.referral.servlets.UpdateRelationshipServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/Login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>CreateRelationshipServlet</servlet-name>
<url-pattern>/CreateRelationship</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>ProcessActionServlet</servlet-name>
<url-pattern>/ProcessAction</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>UpdateRelationshipServlet</servlet-name>
<url-pattern>/UpdateRelationship</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
</web-app>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: How do I debug dispatching errors?
Posted by Christopher Schultz <ch...@christopherschultz.net>.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Josh,
On 10/20/2009 12:50 PM, Josh wrote:
> I have a debug statement set on the first line in the constructor of
> com.mycorp.referral.servlets.CreateRelationshipServlet. However, when I
> call the servlet with this URL:
> http://localhost:8081/MyApp/CreateRelationshp ... the createRelationship
> is not called - rather, ProcessAction is called again.
How are you determining that CreateRelationship is called? If you have a
log statement in the constructor for your servlet, then it ought to only
be called once: when the servlet is instantiated a single time by the
container. That instance will be used to service all requests that map
to that servlet.
Perhaps you should put a log statement in the service() method (or
doGet, doPost, etc.) and see what you get, there.
> I have set the
> debug levels in server.xml and web.xml to 'DEBUG'...
AFAIK, there are no Tomcat-related "debug levels" to be set in either
server.xml or web.xml unless you are using an unsupported version of Tomcat.
> <servlet>
> <servlet-name>CreateRelationshipServlet</servlet-name>
>
> <servlet-class>com.mycorp.referral.servlets.CreateRelationshipServlet</servlet-class>
>
> </servlet>
> <servlet>
> <servlet-name>ProcessActionServlet</servlet-name>
>
> <servlet-class>com.mycorp.referral.servlets.ProcessActionServlet</servlet-class>
>
> </servlet>
[snip]
> <servlet-mapping>
> <servlet-name>CreateRelationshipServlet</servlet-name>
> <url-pattern>/CreateRelationship</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>ProcessActionServlet</servlet-name>
> <url-pattern>/ProcessAction</url-pattern>
> </servlet-mapping>
The above looks just fine. Are you forwarding the user from
CreateRelationshipServlet to ProcessActionServlet instead of redirecting
them, and getting confused about the appearance of the URL?
- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkrnUOQACgkQ9CaO5/Lv0PCMrwCdGPQKg+A4jUGis4on82sKL5q8
NJYAn3iilpKwt7ldbs1D19WXCAvo7PQs
=K8Jr
-----END PGP SIGNATURE-----
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: How do I debug dispatching errors?
Posted by Pid <pi...@pidster.com>.
On 26/10/2009 19:48, Josh wrote:
> This is Tomcat 5.5.26 under Windows XP, Java version as follows:
> java version "1.6.0_16"
> Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
> Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
>
> Pid wrote:
>> Which dispatcher?
> Which dispatcher... can you help me out here? According to the file
> noted below, when I give it the URL:
>
> http://localhost:8080/CreateRelationship
>
> ...it will invoke the CreateRelationshipServlet which is
>
> com.mycorp.referral.servlets.CreateRelationshipServlet
>
> Whatever mechanism it is inside Tomcat that does this dispatching is not
> working as I expect it should... and it's not giving me any indication
> as to why. (Or, I am not able to understand any indication it may be
> giving me.)
What is your app called, is it called ROOT?
Where is your context.xml defined?
Please post a sanitised (comments & passwords removed if applicable)
version of your server.xml.
p
>>> <?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>
>>> <servlet>
>>> <servlet-name>LoginServlet</servlet-name>
>>> <servlet-class>com.mycorp.referral.servlets.LoginServlet</servlet-class>
>>> <!-- <init-param>
>>> <param-name>propertyFileNameLocation</param-name>
>>> <param-value>C:/EclipseLib/FarmersQueue.properties</param-value>
>>> </init-param>
>>> -->
>>> </servlet>
>>> <servlet>
>>> <servlet-name>CreateRelationshipServlet</servlet-name>
>>> <servlet-class>com.mycorp.referral.servlets.CreateRelationshipServlet</servlet-class>
>>>
>>>
>>> </servlet>
>>> <servlet>
>>> <servlet-name>ProcessActionServlet</servlet-name>
>>> <servlet-class>com.mycorp.referral.servlets.ProcessActionServlet</servlet-class>
>>>
>>>
>>> </servlet>
>>> <servlet>
>>> <servlet-name>UpdateRelationshipServlet</servlet-name>
>>> <servlet-class>com.mycorp.referral.servlets.UpdateRelationshipServlet</servlet-class>
>>>
>>>
>>> </servlet> <servlet-mapping>
>>> <servlet-name>LoginServlet</servlet-name>
>>> <url-pattern>/Login</url-pattern>
>>> </servlet-mapping>
>>> <servlet-mapping>
>>> <servlet-name>CreateRelationshipServlet</servlet-name>
>>> <url-pattern>/CreateRelationship</url-pattern>
>>> </servlet-mapping>
>>> <servlet-mapping>
>>> <servlet-name>ProcessActionServlet</servlet-name>
>>> <url-pattern>/ProcessAction</url-pattern>
>>> </servlet-mapping> <servlet-mapping>
>>> <servlet-name>UpdateRelationshipServlet</servlet-name>
>>> <url-pattern>/UpdateRelationship</url-pattern>
>>> </servlet-mapping> <welcome-file-list>
>>> <welcome-file>Login.jsp</welcome-file>
>>> </welcome-file-list>
>>> </web-app>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>> For additional commands, e-mail: users-help@tomcat.apache.org
>>>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: Re: How do I debug dispatching errors?
Posted by Josh <jo...@globalherald.net>.
This is Tomcat 5.5.26 under Windows XP, Java version as follows:
java version "1.6.0_16"
Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode, sharing)
Pid wrote:
> Which dispatcher?
Which dispatcher... can you help me out here? According to the file
noted below, when I give it the URL:
http://localhost:8080/CreateRelationship
...it will invoke the CreateRelationshipServlet which is
com.mycorp.referral.servlets.CreateRelationshipServlet
Whatever mechanism it is inside Tomcat that does this dispatching is not
working as I expect it should... and it's not giving me any indication
as to why. (Or, I am not able to understand any indication it may be
giving me.)
>> <?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>
>> <servlet>
>> <servlet-name>LoginServlet</servlet-name>
>> <servlet-class>com.mycorp.referral.servlets.LoginServlet</servlet-class>
>> <!-- <init-param>
>> <param-name>propertyFileNameLocation</param-name>
>> <param-value>C:/EclipseLib/FarmersQueue.properties</param-value>
>> </init-param>
>> -->
>> </servlet>
>> <servlet>
>> <servlet-name>CreateRelationshipServlet</servlet-name>
>> <servlet-class>com.mycorp.referral.servlets.CreateRelationshipServlet</servlet-class>
>>
>>
>> </servlet>
>> <servlet>
>> <servlet-name>ProcessActionServlet</servlet-name>
>> <servlet-class>com.mycorp.referral.servlets.ProcessActionServlet</servlet-class>
>>
>>
>> </servlet>
>> <servlet>
>> <servlet-name>UpdateRelationshipServlet</servlet-name>
>> <servlet-class>com.mycorp.referral.servlets.UpdateRelationshipServlet</servlet-class>
>>
>>
>> </servlet> <servlet-mapping>
>> <servlet-name>LoginServlet</servlet-name>
>> <url-pattern>/Login</url-pattern>
>> </servlet-mapping>
>> <servlet-mapping>
>> <servlet-name>CreateRelationshipServlet</servlet-name>
>> <url-pattern>/CreateRelationship</url-pattern>
>> </servlet-mapping>
>> <servlet-mapping>
>> <servlet-name>ProcessActionServlet</servlet-name>
>> <url-pattern>/ProcessAction</url-pattern>
>> </servlet-mapping> <servlet-mapping>
>> <servlet-name>UpdateRelationshipServlet</servlet-name>
>> <url-pattern>/UpdateRelationship</url-pattern>
>> </servlet-mapping> <welcome-file-list>
>> <welcome-file>Login.jsp</welcome-file>
>> </welcome-file-list>
>> </web-app>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org
Re: How do I debug dispatching errors?
Posted by Pid <pi...@pidster.com>.
On 20/10/2009 17:50, Josh wrote:
> Hello,
>
> I have a rather small application using servlets. I am encountering a
> problem where the dispatching is not working properly. There is a
> 'web.xml' file that looks like the first listing below.
"Like" or "is"?
> I have a debug statement set on the first line in the constructor of
> com.mycorp.referral.servlets.CreateRelationshipServlet. However, when I
> call the servlet with this URL:
> http://localhost:8081/MyApp/CreateRelationshp ... the createRelationship
> is not called - rather, ProcessAction is called again. I have set the
> debug levels in server.xml and web.xml to 'DEBUG'... but I do not get
> any errors in those logs. How can I debug the dispatcher and determine
> why it's not dispatching properly?
Which dispatcher?
(Which Tomcat version?, OS?, yada yada)
p
> <?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>
> <servlet>
> <servlet-name>LoginServlet</servlet-name>
> <servlet-class>com.mycorp.referral.servlets.LoginServlet</servlet-class>
> <!-- <init-param>
> <param-name>propertyFileNameLocation</param-name>
> <param-value>C:/EclipseLib/FarmersQueue.properties</param-value>
> </init-param>
> -->
> </servlet>
> <servlet>
> <servlet-name>CreateRelationshipServlet</servlet-name>
> <servlet-class>com.mycorp.referral.servlets.CreateRelationshipServlet</servlet-class>
>
> </servlet>
> <servlet>
> <servlet-name>ProcessActionServlet</servlet-name>
> <servlet-class>com.mycorp.referral.servlets.ProcessActionServlet</servlet-class>
>
> </servlet>
> <servlet>
> <servlet-name>UpdateRelationshipServlet</servlet-name>
> <servlet-class>com.mycorp.referral.servlets.UpdateRelationshipServlet</servlet-class>
>
> </servlet> <servlet-mapping>
> <servlet-name>LoginServlet</servlet-name>
> <url-pattern>/Login</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>CreateRelationshipServlet</servlet-name>
> <url-pattern>/CreateRelationship</url-pattern>
> </servlet-mapping>
> <servlet-mapping>
> <servlet-name>ProcessActionServlet</servlet-name>
> <url-pattern>/ProcessAction</url-pattern>
> </servlet-mapping> <servlet-mapping>
> <servlet-name>UpdateRelationshipServlet</servlet-name>
> <url-pattern>/UpdateRelationship</url-pattern>
> </servlet-mapping> <welcome-file-list>
> <welcome-file>Login.jsp</welcome-file>
> </welcome-file-list>
> </web-app>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org