Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Update debug mode after R18.12


Info
titlePre Gradle version

This page documents the usage with Gradle, the pre-Gradle documentation is here: Running and

...

Debugging OFBiz in Eclipse

Table of contents

Table of Contents

Warning
title

...

Be sure Eclipse is ready

Before any interaction with OFBiz in Eclipse be sure to run "gradlew eclipse". This generate the information Eclipse needs about the OFBiz project.

Run OFBiz in debug mode and debug

...

in Eclipse

Step 1: Run OFBiz in debug mode

Normally we start OFBiz with the command line %JAVA_HOME%\bin\java -jar ofbiz.jar

Code Block
  gradlew ofbiz

To start in debug mode use the command line %JAVA_HOME%\bin\java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8091 -jar ofbiz.jar
This changed command line instructs java to

R17.12 and R18.12

Code Block
  gradlew ofbizDebug

Trunk and after R18.12

Code Block
  gradlew ofbiz --debug-jvm

This run in debug mode listening for a socket connection on port 8091 5005 for a debugger to connect. You can change the port number to any port not otherwise being usedSo unlike with Ant you have to connect a Debugger at this port for OFBiz to continue.

Step 2: Connect to OFBiz with Eclipse as a Debugger

Before connecting you have to create a new debug configuration. *

  • In Eclipse choose Run->Debug... from the menu. A Debug window should pop up.
  • Select Remote Java Application from the tree on the left.
  • Click New (button on the bottom left).
  • Type a name at the top (OFBiz, perhaps?)
  • On the Connect tab
    • Pick ofbiz for the project
    • Select Standard (Socket Attach) for Connection Type
    • Type localhost for host
    • Type 8091 (or whatever port you chose) for port 5005
  • On the Source tab
    • Click Add Projects... (buttons on the right)
    • Select the ofbiz project
  • Click Apply If you have OFBiz running debug (Step 1 above) you can start debugging by clicking Debug (on the bottom) now.
    You know that you are connected when you see a start/stop button in the debug perspective of Eclipse.
    No Format
    
    First created by Jarrod Ribble.
    

...

Debugging (or running) OFBiz inside Eclipse

  • Select OFBiz project, right-click on it -> Run As -> Run ... (alike for Debug)
  • Select Java Application and click on New
  • Set Run configuration name to OFBiz
    • Main tab:
      • Project: OFBiz
      • Main class: org.ofbiz.base.start.Start
      • If you need it (to trace a framework bug in the 1st loaded class) you may use the "Stop in Main" Option
    • Arguments:
      • VM arguments: -Xms(minValue)M -Xmx(maxValue)M  (typically minValue = 128, maxValue = 5121024, more is better of course) -Duser.language=en  
        • In some case (Suse  SL 10.1 at least) it's better to not define any VM arguments but let the defaults values.
      • Working directory: Use default working directory
    • Classpath
      • Bootstrap Entries: JRE System Library
      • User Entries: build/libs/ofbiz.jar from OFBiz project
        • Don't forget to remove the entry "ofbiz (default classpath)" else you may have a message "Can't find bundle for base name cache, locale ..."
    • Source tab
      • Click Add Projects... (buttons on the right)
      • Select the ofbiz project
    • Environment
      • Add environment variable LC_ALL=C (Optional, Linux only)
  • Click on Apply and Run (or Debug)
    No Format
    
    Thanks to Peter Goron of Néréides
    

...

Browsing Derby Database in Eclipse 

Connecting the database

The Eclipse DTP (Data Tools Project) is quite helpful to inspect database content from within the IDE. As long as you are using the embedded Derby database in OFBiz, you can create a DTP connection as described here. Everything you need comes with OFBiz. Just make sure you have the Data Tools Platform features installed in your Eclipse IDE.

  • In the Data Source Exlorer View, right-click on Databases and choose New ... .

...

  • Select Derby Embedded Database and click on Next.

Image Removed

  • Enter a name and description. (Note: Both are for your reference only!) Click Finish.

Image Removed

...

Note that when doing development work, you will

...

have

...

Image Removed

  • Choose 10.2 under Derby and click the Add... button.

Image Removed

  • Make sure you choose the Derby Embedded JDBC driver and click OK.

Image Removed

  • The template expects the driver to be in a file called derby.jar. Select that line in the Driver File(s) listbox and click on Edit Jar/Zip to specify the actual location of the JAR file. You will find this in your workspace as framework/entity/lib/jdbc/derby-10.2.2.0.jar. When done, click OK.

Image Removed

  • You should be back in the Driver and Connection Details. Fill in the parameters as you can see them here. Note: For Database location, adapt to your workspace location. There is no way to use a variable in this path, unfortunately. Username and password are ofbiz/ofbiz by default. For convenience, in a development environment, it should be acceptable to save the password with the connection. Make sure that Create database (if required) is unchecked, as this does not make sense in this context.

Important: This is not the place to decide that you'd like your Derby DB in a different location for OFBiz as OFBiz itself does not use these settings. If you would like to have your database outside of the workspace, take a look at the entityengine.xml config file and read the Entity Engine Configuration Guide to learn how to switch databases.

Click on Test Connection to make sure your settings allow you to successfully connect to the database.

Image Removed

  • You should now be able to browse the database content of OFBiz inside Eclipse.

Image Removedto stop OFBiz. Because this method treats OFBiz as a plain Java. You don't have any automatic classloading as you might be used to when using Eclipse-WTP and developing webapps.