How to Debug Apache ODE with Apache Tomcat Server
- Ishara Premadasa
- Solutions Engineer - WSO2
- 21 Sep, 2011
Apache ODE (Orchestration Director Engine) can be deployed and run in three different environments. One of those three methods is deploying ODE as a web service in Axis 2, by deploying the ode war distribution(ode.war) inside an application server like Apache tomcat.
Once it is deployed and started you may need to debug ODE, to understand what is going inside the engine. The following is a short guide on how to debug
Apache ODE in tomcat with both Windows and Linux environments using the IntelliJ Idea as the standard IDE.
If you haven't downloaded Apache Tomcat and Apache ODE download them by clicking on them and visiting the corresponding web page. After downloading them extract
the archives into your local hard drive.Copy the ode.war distribution which is found inside the extracted ode_1.3.5 directory into the apache_tomcat_7/webapps directory. Once the tomcat server started back, ODE will be deployed in the tomcat server.
Start tomcat in console by using,
apache-tomcat-7/bin$ sh startup.sh
Now go to https://localhost:8080/ode in your browser and ODE home page will appear as shown in Figure 1.
Figure 1: Apache ODE home page
Apache Tomcat can be debugged with JPDA debugger by starting tomcat with catalina script. To do this
go to Tomcat_Home/bin folder and enter the following command.
apache-tomcat-7/bin$ sh catalina.sh jpda run
This will start catalina server in debug mode and you can see it displays the
message, "Listening for transport dt_socket at address: 8000" in terminal as shown in Figure 2.
Figure 2: Starting tomcat in debug mode
Another method would be setting the JAVA_OPTS to start up java for listening to debugger connections by giving,
apache-tomcat-7/bin$ export JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"
When it is set, start the catalina server in the usual manner as 'sh catalina.sh run' and tomcat will be started in debug mode.
Now we can create a remote debug configuration by giving Host: localhost and Port: 8000 in our IDE which is used to open the ode source code, and debug ODE by using that. Remember to use the same port used as
JPDA_ADDRESS in tomcat as your IDE's remote debug port. The default port address is 8000.
This is how to create a remote debug with IntelliJ Idea 10.
- Go to Run --> Edit Configurations in the IDE
- When it is selected the Run/Debug Configurations window will pop up. Click the icon there and
select 'Remote' from 'Add New configuration' menu.
- This will create a new remote debug configuration for us. Let's name it as 'ode' and fill the Host field with 'localhost' and Port
field with '8000'. Then click OK.
- The new remote debug is successfully created now. After the tomcat server is started, select 'ode' remote debug and start it by clicking icon in Idea. It will
connect to the server via the defined port and you can start debug ODE now.
- Open catalina.sh script in the Tomcat_Home/bin folder and search for JPDA_ADDRESS, you will see JPDA_ADDRESS="8000" defined there. Change it to any available port and restart tomcat under JPDA debugger. The
server will listen from the new address now.
- Now go back to the 'ode' remote debug and select 'Edit Configurations' to edit its configurations.
- When Debug Configuration window appears set the Port address into the modified port, 8010. Once it is set ODE can be debugged using the new port again.
Figure 3: Creating a remote debug configuration
Figure 4: Created new remote debug
Figure 5: Setting up Host and Port for remote debugging
Figure 6: Debugging ODE
Note: port 8000 is the default port address used in tomcat for JPDA debugging, however if port 8000 is busy (due to some other application running
there), you can change it into another port. If it is needed follow the given steps.
Figure 7: Edit the JPDA_PORT in catalina script
You can also change this port (let's say to 8010) by giving following command in terminal.
apache-tomcat-7/bin$ export JPDA_ADDRESS=8010
Figure 8: Edit the remote debug configuration in Idea 10.0.3
Debugging in Windows is also very similar to in Linux, except the commands that should be used. All the following
demonstrations are performed in Windows 7 version.
- To start tomcat, go to the tomcat home's bin folder and start catalina.bat file under jpda debugger as follows.
C:\Apache-Tomcat-7\bin> catalina.bat jpda run
Now catalina will start in remote debugging mode under JPDA debugger using its default port 8000. When it is started you will see tomcat starts a new debug
console as shown below in Figure 9.
Figure 9: Tomcat debugger console in Windows 7
This can be also done by setting an environment variable JAVA_OPTS, and starting the tomcat server with usual command.
When it is started create a new remote debug configuration as described in the previous section by configuring the correct Port address and Host. Once the remote debug configuration is
connected to the server, you can debug ODE successfully.
Note: To change the port address from 8000 to another port 'set' command can be used in Windows. Go to Apache-Tomcat-7\bin and enter;
C:\ Apache-Tomcat-7\bin> set JPDA_ADDRESS="8010"
Figure 10: Change JPDA_ADDRESS in tomcat
When tomcat is started again you will see that it has changed the listening port into '8010' as we changed. Change the Port address in the
remote debug into this new address and start debugging again.
Figure 11: Debugging tomcat in Different Port
JPDA_ADDRESS can be also changed from the catalina.bat file in Windows. Right click catalina.bat file and select 'Edit' option from the menu.
Then the file will be opened using Notepad or some other text document opening application in Windows. Search for JPDA_ADDRESS and change its value
into a new one. Save the file back and start tomcat again.
Undergraduate, Dept. of Computer Science and Engineering
University of Moratuwa