You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by JT...@aol.com on 2000/11/16 20:03:11 UTC
Accessing Servlets In Packages
I seem to have my problem solved, but let me get this back on the mailing
list for the benefit of the archives --
I was having trouble accessing servlets that reside in my own packages. My
test cases could access .class files in:
/usr/local/jakarta-tomcat/webapps/myWebApp/WEB-INF/classes
For example "SnoopServlet.class" in that subdir is accessed with:
http://www.mySiteName.com/myWebApp/servlet/SnoopServlet
Now, take a class, SomePackageClass, declared to be in package testapackage
within its .java code file. Its compiled form is in the following file:
/usr/local/jakarta-tomcat/webapps/myWebApp/WEB-INF/classes/testapackage/SomePa
ckageClass.class
I would like to (but CANNOT) access it with:
http://www.mySiteName.com/myWebApp/servlet/testapackage/SomePackageClass
INSTEAD, I FIND I MUST USE:
http://www.mySiteName.com/myWebApp/servlet/testapackage.SomePackageClass
(Note the "." notation separating the package name and class name, rather
than a "/".)
Unfortunately, the slash notation worked with JServ, for which I have tons of
working code, but not with Tomcat.
Thanks for others' comments related to possible addition of <servlet> tags in
file ..../webapps/myWebApp/WEB-INF/web.xml but it looks like I'd still have
to change all my JServ code (the calling HTML) that used the slash notation.
Incidentally, I found a sprinkling of material pertaining to my problem in
the new book "Core Servlets and JavaServer Pages" by Marty Hall. This was
published this year (year 2000) for Sun Microsystems by Prentice Hall (see
pages 30-42). I wish to give them a plug for this very current effort
complete with some updates based on Tomcat 3.1. Price is US$42.99.
John Thompson
Boulder, Colorado, USA
JTBldrCO@aol.com
Re: Accessing Servlets In Packages
Posted by "Craig R. McClanahan" <Cr...@eng.sun.com>.
JTBldrCO@aol.com wrote:
> [snip]
> Now, take a class, SomePackageClass, declared to be in package testapackage
> within its .java code file. Its compiled form is in the following file:
>
> /usr/local/jakarta-tomcat/webapps/myWebApp/WEB-INF/classes/testapackage/SomePa
>
> ckageClass.class
>
> I would like to (but CANNOT) access it with:
>
> http://www.mySiteName.com/myWebApp/servlet/testapackage/SomePackageClass
>
Why can't you use a servlet definition and mapping like this:
<servlet>
<servlet-name>My Servlet</servlet-name>
<servlet-class>testpackage.SomePackageClass</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>My Servlet</servlet-name>
<url-pattern>/servlet/testpackage/SomePackageClass</url-pattern>
</servlet-mapping>
which would support your desired URL?
>
> John Thompson
> Boulder, Colorado, USA
> JTBldrCO@aol.com
Craig McClanahan