Running and Debugging OFBiz in Eclipse

Running and Debugging OFBiz in Eclipse
Icon
Due to spam, the infrastructure team has restricted the access to all ASF Confluence open wikis (Confluence is shared by all ASF projects). If you want to add or edit a page, comment or attachment, you need to sign up (create an account in Confluence) and be registered by the OFBiz team as a contributor. If you have already signed up to Confluence, to register simply send your Confluence username (see in your profile) to the OFBiz user Mailing List: user@ofbiz.apache.org. We will then register you as an OFBiz contributor.

Skip to end of metadata
Go to start of metadata

Tables of content

  1. Remote Debugging OFBiz in Eclipse
  2. Debugging (or running) OFBiz in Eclipse
  3. Debugging (or running) OFBiz in Eclipse with hot replacement of classes
  4. Browsing Derby Database in Eclipse

1. Remote Debugging OFBiz in Eclipse

This is the official recommended way for debugging OFBiz. It's fine. Personnaly (Jacques Le Roux) I use also the second method below Debugging (or running) OFBiz in Eclipse because I find it convenient (but I'm certainly biased having used such tools for a pretty long time now). For instance, it's really helpful when it comes to debug the framework java code. When someone has screwed up the framework java code and you can't load OFBiz. Then it's an easy way to debug OFBiz using inside debugging. Though using the remote debugging technique, you may also suspend the JVM through the command line options at start up. Effectively the JVM boots, stops and waits for a debugger to connect and then it continues so you can still use remote debugging. Just put suspend=y in the start options alongside the socket and ports settings (thanks Ray)

Step 1: Run OFBiz in debug mode

Normally we start OFBiz with the command line

To start in debug mode use the command line

This changed command line instructs java to run in debug mode listening for a socket connection on port 8091 for a debugger to connect. You can change the port number to any port not otherwise being used.

There is an ant task that you could use to start Ofbiz with the debug settings above.

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
  • 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.

The above section was first created by Jarrod Ribble


2. Debugging (or running) OFBiz in 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 = 512, more is better of course)
        • 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: 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)

Note that when doing development work, you will have to stop OFBiz, run an Ant build and re-start. Because this method treats OFBiz as a plain Java up, you don't have any automatic classloading as you might be used to when using Eclipse-WTP and developing webapps.

The above section thanks to Peter Goron


3. Debugging (or running) OFBiz in Eclipse with hot replacement of classes

  • Add the framework/base/config directory as source folder to the Eclipse classpath.
  • 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.start
    • Main tab:
      • Project: OFBiz
      • Main class: org.ofbiz.base.start.Start
    • Arguments:
      • Program Arguments: -start
      • VM arguments: -DDEBUG=true -Xms(minValue)M -Xmx(maxValue)M  (typically minValue = 128, maxValue = 512)
  • Click on Apply
  • add the following lines to the /ofbiz/framework/entity/src/META-INF/services/org.ofbiz.base.conversion.ConverterLoader unless your ofbiz svn release is greater or equal to r1308085. see https://issues.apache.org/jira/browse/OFBIZ-4777
    • org.ofbiz.base.conversion.BooleanConverters
    • org.ofbiz.base.conversion.CollectionConverters
    • org.ofbiz.base.conversion.DateTimeConverters
    • org.ofbiz.base.conversion.JSONConverters
    • org.ofbiz.base.conversion.MiscConverters
    • org.ofbiz.base.conversion.NetConverters
    • org.ofbiz.base.conversion.NumberConverters
  • add the build-eclipse target in the main build.xml as
    <target name="build-eclipse" depends="build">
    <delete>
    <fileset dir="${basedir}">
    <include name="**/build/lib/ofbiz-*.jar"/>
    <exclude name="**/ofbiz-minerva.jar"/>
    </fileset>
    </delete>
    </target>
  • run ant build-eclipse at the OFBiz directory
  • launch OFBiz.start with the debugger launcher

In case of MissingResourceException error see Thim Anneessens's comment at bottom


4. Browsing Derby Database in Eclipse

The following is a bit old. For installation at least you might be interested by http://www.vogella.de/articles/EclipseDataToolsPlatform/article.html

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 Explorer View, right-click on Databases and choose New ... .

  • Select Derby Embedded Database and click on Next.

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

  • Most likely, you will not yet have a Driver Definition for the Derby database available, so the Select a driver dropdown will be empty. Click on the ... button next to it to start creating a driver definition.

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

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

  • 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.

  • 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.

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

Labels
  • No labels