Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add a link to Commons Daemon project page, and use a full name,

Permalink to this page: https://cwiki.apache.org/confluence/x/8CklBg

About

This section of the FAQ discusses common questions related to Tomcat development.

...

How do I start hacking Tomcat in Eclipse?

Briefly:

No Format

$ svngit checkoutclone httphttps://svngithub.com/apache.org/repos/asf/tomcat/trunktomcat.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 trunktomcat

$ 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]

...

A full explanation for Tomcat in Eclipse can be found here:

Debugging

Anchor
Q1
Q1

How do I configure Tomcat to support remote debugging?

The short answer is to add the following options when the JVM is started:

No Format

-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

...

  • 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 of catalina.sh or .bat file for details.
    For example, the port number and JPDA transport implementation can be set with JPDA_ADDRESS=8000 and JPDA_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.

...

This answer assumes that you have a project set up and have some idea of what you are doing in this respect. If not then that is really outside the scope of this topic and you need to go to eclipse.org and read up on how to use your IDE, and maybe practice a little bit before you come back to this. We are also going to assume that you have some idea of what a debugger is and how to use one.

...

How do I remotely debug Tomcat using NetBeans?

This answer assumes that you know how to work with a NetBeans Project, and also how to use the NetBeans debugger. If not, please go to http://www.netbeans.org/kb/using-netbeans/40/debug.html and read up on how to use NetBeans and its debugger.

...

Monitoring interval for application reloading is controlled by the backgroundProcessorDelay property on Context element or on its parent containers: Host and Engine. See Tomcat Configuration Reference for details. By default there is a single background processing thread that is run by Engine. See its configuration for the default delay value.

Interval that controls reloading of the changed JSP pages is set in the Jasper configuration in web.xml.

Anchor
Q6
Q6

Official Eclipse IDE Web Tools FAQ for Tomcat

Eclipse IDE has support for development of Web applications and running them on Apache Tomcat. This support is provided by Eclipse Web Tools Platform Project. An easy way to get Web Tools is to download "for Java EE Developers" edition of Eclipse IDE.

The Web Tools project has a FAQ page.

  • WTP Tomcat FAQ
  • In Eclipse Help see "Web Tools Platform User Guide" > "Using the server tools" > "Testing and publishing on your server"

...