...
How do I start hacking Tomcat in Eclipse?
Briefly:
No Format |
---|
$ git clone https://github.com/apache/tomcat.git
(or whatever branch you want: clearly, this would be better
to do directly from within Eclipse but it's easier to describe
as a command)
$ cd tomcat
$ echo "base.path=/path/to/where/tomcat/can/put/its/3rd-party/libs" > build.properties
$ ant ide-eclipse
|
Then, in Eclipse, go to Preferences | Java/Build Path/Classpath Variables and set the following variables:
No Format |
---|
ANT_HOME=path to your Ant install (where lib/ant.jar can be found)
TOMCAT_LIBS_BASE=[whatever you set base.path to above]
|
...
If you are using shell scripts to start Tomcat, start it with the following command:
No Format catalina jpda start
It will start Tomcat so that a remote debugger can be connected to port 8000.
The above mentioned options can be provided by setting certain environment variables. See the comments at the top ofcatalina.sh
or.bat
file for details.
For example, the port number and JPDA transport implementation can be set withJPDA_ADDRESS=8000
andJPDA_TRANSPORT=dt_socket
.- If you run Tomcat using a service wrapper (e.g. Apache Commons Daemon), add the above JVM options before any other JVM options. Check the documentation for the service wrapper to determine how to set JVM options.
- If you start Tomcat from within an IDE, check the documentation for the IDE to determine how to set the required JVM options.
The port does not need to be set to 8000, it may be any value appropriate for your system.
If you need to debug Tomcat startup or the auto-deployment of an application (where a breakpoint set in a debugger would be reached before you have time to connect with the debugger), then set the parameter suspend=y
instead of suspend=n
. Doing this will cause the JVM to pause execution very early in the launch process and wait until a debugger is attached before proceeding.
Whilst this is very useful in development it should not be used in production because of both security and performance implications.
...