• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

servlet not running but examples does

 
Ranch Hand
Posts: 620
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello all
im trying to run simple example of servlet , very simple
but somehow its not working when but when I run the tomcat servlets example its working just fine here is what I have
what im doing wrong, by the way im running on unix sun solaris both with apache and tomcat and mod_jk as the connector.

my apache httpd.conf config is :

#Load mod_jk
LoadModule jk_module libexec/mod_jk.so

# Configure mod_jk
JkWorkersFile /bld/rnde/RunEnv/apache/tomcat/conf/workers.properties
JkLogFile /bld/rnde/RunEnv/apache/tomcat/logs/mod_jk.log
JkLogLevel debug
JkMount /*.jsp testWorker
JkMount /* testWorker

my tomcat directories for the new servlet under tomcat dir is :

../tomcat/webapps/myApp
../tomcat/webapps/myApp/WEB-INF/web.xml
../tomcat/webapps/myApp/WEB-INF/classes
../tomcat/webapps/myApp/WEB-INF/classes/TestingServlet.class


my web.xml looks like :

<?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>Testing</servlet-name>
<servlet-class>TestingServlet</servlet-class>
</servlet>
</web-app>

and the jave file :
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class TestingServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<HTML>");
out.println("<HEAD>");
out.println("<TITLE>Servlet Testing</TITLE>");
out.println("</HEAD>");
out.println("<BODY>");
out.println("Welcome to the Servlet Testing Center");
out.println("</BODY>");
out.println("</HTML>");
}
}
 
Ranch Hand
Posts: 116
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You should give the url-pattern for your TestingServlet in web.xml, then you can access the servlet by using that url-pattern.
 
Sheriff
Posts: 14691
16
Eclipse IDE VI Editor Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Balasubramani means setting the <servlet-mapping> tag to match url pattern to your servlet. For example:
 
Sheriff
Posts: 13411
Firefox Browser VI Editor Redhat
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Meir Yan,
Welcome to JavaRanch.


Javaranch tip:

If you are going to post more than a line or two of your code, wrap that
code in a set of UBB Code tags.
Doing so will help to preserve your code's indenting, making it easier to read.
If it is easier to read, more people will actaully read it and you will
stand a better chance of getting help with your question.



As Balasubramani has stated, you will want to create a servlet-mapping entry for your servlet so the container will know how to match up your browser request with your servlet.

Also, I would advise putting all of your classes in packages.
You may be able to get the servlet working from the default package but you will run into trouble later when trying to add beans and JSPs if all of your Java classes are not packaged.

-Ben
 
ben josh
Ranch Hand
Posts: 620
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I still can't see my servlet even that I added the servlet mapping.
I changed in the apache httpd.conf to take all the servlets under the myApp
so its looks like :
JkMount /myApp/* testWorker
im trying to browse as
http://sun:9999/Testing
http://sun:9999/myApp/Testing
http://sun:9999/myApp/servlet/Testing
but with no lock �

the web.xml now looks like this :

<?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>Testing</servlet-name>
<servlet-class>TestingServlet</servlet-class>
<servlet-mapping>
<servlet-name>Testing</servlet-name>
<url-pattern>/Testing</url-pattern>
</servlet-mapping>
</servlet>
</web-app>



the jk_mod log says :

[Tue Jun 27 13:19:34 2006] [jk_ajp_common.c (537)]: ajp_unmarshal_response: Header[1] [Content-Language] = [en]
[Tue Jun 27 13:19:34 2006] [jk_ajp_common.c (851)]: received from ajp13 #731
[Tue Jun 27 13:19:34 2006] [jk_ajp_common.c (851)]: received from ajp13 #2
[Tue Jun 27 13:19:34 2006] [jk_ajp_common.c (1716)]: Into jk_endpoint_t: one, recycling connection
[Tue Jun 27 13:19:44 2006] [jk_uri_worker_map.c (445)]: Into jk_uri_worker_map_t::map_uri_to_worker
[Tue Jun 27 13:19:44 2006] [jk_uri_worker_map.c (459)]: Attempting to map URI '/myApp/servlet/Testing'
[Tue Jun 27 13:19:44 2006] [jk_uri_worker_map.c (483)]: jk_uri_worker_map_t::map_uri_to_worker, Found a context match testWor
ker -> /myApp/

that means what ? that tomcat did found it ? but why it does not show it?

in the localhost_log.2006-06-27.txt log I see :

2006-06-27 12:49:40 StandardManager[/myApp]: Seeding random number generator class java.security.SecureRandom
2006-06-27 12:49:40 StandardManager[/myApp]: Seeding of random number generator has been completed
2006-06-27 12:49:40 StandardWrapper[/myApp efault]: Loading container servlet default
2006-06-27 12:49:40 StandardWrapper[/myApp:invoker]: Loading container servlet invoker
2006-06-27 13:09:41 WebappLoader[/myApp]: Deploying class repositories to work directory /bld/rnde/RunEnv/apache/tomcat/work/S
tandalone/localhost/myApp
2006-06-27 13:09:41 WebappLoader[/myApp]: Deploy class files /WEB-INF/classes to /bld/rnde/RunEnv/apache/tomcat/webapps/myApp/
WEB-INF/classes
2006-06-27 13:09:41 StandardManager[/myApp]: Seeding random number generator class java.security.SecureRandom
2006-06-27 13:09:41 StandardManager[/myApp]: Seeding of random number generator has been completed
2006-06-27 13:09:41 StandardWrapper[/myApp efault]: Loading container servlet default
2006-06-27 13:09:41 StandardWrapper[/myApp:invoker]: Loading container servlet invoker
2006-06-27 13:19:26 WebappLoader[/myApp]: Deploying class repositories to work directory /bld/rnde/RunEnv/apache/tomcat/work/S
tandalone/localhost/myApp
2006-06-27 13:19:26 WebappLoader[/myApp]: Deploy class files /WEB-INF/classes to /bld/rnde/RunEnv/apache/tomcat/webapps/myApp/
WEB-INF/classes
2006-06-27 13:19:26 StandardManager[/myApp]: Seeding random number generator class java.security.SecureRandom
2006-06-27 13:19:26 StandardManager[/myApp]: Seeding of random number generator has been completed
2006-06-27 13:19:26 StandardWrapper[/myApp efault]: Loading container servlet default
2006-06-27 13:19:26 StandardWrapper[/myApp:invoker]: Loading container servlet invoker


what im doing wrong here ? I don�t understand .
 
Ben Souther
Sheriff
Posts: 13411
Firefox Browser VI Editor Redhat
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Before getting entangled in connector issues, I would make sure that the app is deployed properly and the servlets can be hit with a browser using Tomcat as a standalone.

Also, did you see my earlier advice about packaging that servlet?

If you would like an example of a simple hello world servlet app, go to
http://simple.souther.us and download SimpleServlet.war to your {tomcat install}/webapps directory. This will give you working example of servlet that is properly packaged and configured. If you can't hit this one, the problem is most likely in your connector code.
 
Christophe Verré
Sheriff
Posts: 14691
16
Eclipse IDE VI Editor Ubuntu
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Your web.xml is not correct.
Should be
 
ben josh
Ranch Hand
Posts: 620
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks allot guys my web.xml was wrong ...
i have one more question when i write simple servlet
and i will like to test my servlet output in simple java app when i do
System.out.println("Somthing ") i will see the result
when i run java myclass
but in servlets when i build something like this :

import javax.servlet.*;
import java.io.*;

public class PrimitiveServlet implements Servlet {
public void init(ServletConfig config)throws ServletException{
System.out.println("Init Servlet");
}
public void service(ServletRequest request,ServletResponse response)throws ServletException,IOException{
System.out.println("Service Servlet");
}
public void destroy(){
System.out.println("destroy Servlet");
}
public String getServletInfo(){
return null;
}
public ServletConfig getServletConfig(){
return null;
}
}
when i rune the servlet where can i see the output of the servlet ? that is the System.out.println() calls
thanks
 
Ben Souther
Sheriff
Posts: 13411
Firefox Browser VI Editor Redhat
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Look under {tomcat install}/logs
 
ben josh
Ranch Hand
Posts: 620
1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks again
one more basic question..
is There any matter of caching when compiling servlets?
do i need to restart the server every time i recompile the servlet?
im getting weird results, im keep getting the old servlet result even if
i did refresh the browser. is there any kind of caching parameter i need to be familure with ?
thanks
 
Ben Souther
Sheriff
Posts: 13411
Firefox Browser VI Editor Redhat
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
It depends on the server.

With Tomcat, you will need to restart the application whenever you recompile your java classes. This can be done from the manager app that ships with Tomcat. You could also just restart Tomcat but that usually takes longer.

If you set the reloadable attribute in your Context to true, the app will reload itself every time you recompile a class that has already been loaded.
 
Water proof donuts! Eat them while reading this tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic