You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Clive Luk <cl...@ilanet.net.au> on 2003/09/03 02:13:21 UTC

restart tomcat everytime I make change to servlet

Hi list,

I have come up another problem with making changes on servlet. Hope someone
can give me a hand on that. This is how I do it.

1. make changes to servlet1.java
2. javac servlet1.java
3. copy the servlet1.class to /<whatever>/WEB-INF/classes

The problem is I don't have any problem running tomcat. Until I overwrite an
old version of servlet with an new one. Everything seems gone wrong.

I will get HTTP status 500 to the servlet I changed.

If I reload the page again. I will get 503 Servlet servlet1 is currently
unavailable.

If I try other servlet that I didn't change I will get the same error.

Please help. Thanks in advance.

Cheers,
Clive


RE: restart tomcat everytime I make change to servlet

Posted by Clive Luk <cl...@ilanet.net.au>.
Hi,

As I can see from the logs the HelloWorld.class was modifed and TC is
noticed that.

------------------------catalina.out------------------------

WebappClassLoader:   Resource '/WEB-INF/classes/HelloWorld.class' was
modified; Date is now: Wed Sep 03 11:21:41 EST 2003 Was: Wed Sep 03 11:13:25
EST 2003


------------------------domain.2003.09.03.log--------------------------

2003-09-03 11:21:44 StandardContext[]: Reloading this Context has started
2003-09-03 11:21:44 WebappLoader[]: Reloading checks are enabled for this
Context
2003-09-03 11:21:44 StandardWrapper[:default]: Loading container servlet
default
2003-09-03 11:21:44 StandardWrapper[:invoker]: Loading container servlet
invoker
2003-09-03 11:21:44 StandardManager[]: Seeding random number generator class
java.security.SecureRandom
2003-09-03 11:21:44 StandardManager[]: Seeding of random number generator
has been completed
2003-09-03 11:21:44 StandardContext[]: Reloading this Context is completed

After I overwrite the old HelloWorld.class with a new one. have a look at
the following logs.


I have no choice but to restart tomcat everytime I recompile a class. And it
took me quite a while to restart tomcat too. I am sure there is some way to
fix this problem. Please help!

------------------------catalina.out------------------------

Sep 3, 2003 11:28:33 AM org.apache.jk.server.JkCoyoteHandler action
INFO: RESET

and a bunch of java errors on domain.2003.09.03.log

---------------------domain.2003.09.03.log------------------------------

2003-09-03 11:28:33 StandardWrapper[:HelloWorld]: Marking servlet HelloWorld
as unavailable
2003-09-03 11:28:33 StandardWrapperValve[HelloWorld]: Allocate exception for
servlet HelloWorld
javax.servlet.ServletException: Wrapper cannot find servlet class HelloWorld
or a class it depends on
        at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:89
1)
        at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:210)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
        at
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)
        at java.lang.Thread.run(Thread.java:534)
----- Root Cause -----
java.lang.ClassNotFoundException: HelloWorld
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1444)
        at
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1289)
        at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:88
5)
        at
org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:668)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:210)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:171)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174)
        at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
        at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
        at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
        at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:263)
        at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:360)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:604)
        at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:562)
        at
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:679)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:619)
        at java.lang.Thread.run(Thread.java:534)



Cheers,
Clive

-----Original Message-----
From: Filip Hanik [mailto:mail@filip.net]
Sent: Wednesday, September 03, 2003 10:22 AM
To: Tomcat Users List; clive@ilanet.net.au
Subject: Re: restart tomcat everytime I make change to servlet


you will need to restart the context I believe,

but if you truly want this functionality, put your servlet code in a JSP

Filip

----- Original Message -----
From: "Clive Luk" <cl...@ilanet.net.au>
To: "Tomcat Users List" <to...@jakarta.apache.org>
Sent: Tuesday, September 02, 2003 5:13 PM
Subject: restart tomcat everytime I make change to servlet


Hi list,

I have come up another problem with making changes on servlet. Hope someone
can give me a hand on that. This is how I do it.

1. make changes to servlet1.java
2. javac servlet1.java
3. copy the servlet1.class to /<whatever>/WEB-INF/classes

The problem is I don't have any problem running tomcat. Until I overwrite an
old version of servlet with an new one. Everything seems gone wrong.

I will get HTTP status 500 to the servlet I changed.

If I reload the page again. I will get 503 Servlet servlet1 is currently
unavailable.

If I try other servlet that I didn't change I will get the same error.

Please help. Thanks in advance.

Cheers,
Clive


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




Re: restart tomcat everytime I make change to servlet

Posted by Filip Hanik <ma...@filip.net>.
you will need to restart the context I believe,

but if you truly want this functionality, put your servlet code in a JSP

Filip

----- Original Message -----
From: "Clive Luk" <cl...@ilanet.net.au>
To: "Tomcat Users List" <to...@jakarta.apache.org>
Sent: Tuesday, September 02, 2003 5:13 PM
Subject: restart tomcat everytime I make change to servlet


Hi list,

I have come up another problem with making changes on servlet. Hope someone
can give me a hand on that. This is how I do it.

1. make changes to servlet1.java
2. javac servlet1.java
3. copy the servlet1.class to /<whatever>/WEB-INF/classes

The problem is I don't have any problem running tomcat. Until I overwrite an
old version of servlet with an new one. Everything seems gone wrong.

I will get HTTP status 500 to the servlet I changed.

If I reload the page again. I will get 503 Servlet servlet1 is currently
unavailable.

If I try other servlet that I didn't change I will get the same error.

Please help. Thanks in advance.

Cheers,
Clive


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