Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Tables

...

of

...

content

...

Remote

...

Debugging

...

OFBiz

...

in

...

Eclipse

...


Debugging

...

(or

...

running)

...

OFBiz

...

in

...

Eclipse

...


Browsing

...

Derby

...

Database

...

in Eclipse

Anchor
RemoteDebugging
RemoteDebugging

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

Code Block
 Eclipse|#DerbyInEclipse]


{anchor:RemoteDebugging}
h2. 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|#debuggingInEclipse] 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)


h3. Step 1: Run OFBiz in debug mode

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

To

...

start

...

in

...

debug

...

mode

...

use

...

the

...

command

...

line

{
Code Block
}
  %JAVA_HOME%\bin\java -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8091 -jar ofbiz.jar
{code}

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.

{
Code Block
}
  ./ant run-debug
{code}

h3. Step 

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.

First created by Jarrod Ribble

Anchor
debuggingInEclipse
debuggingInEclipse

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)

...

      • (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)

...

Thanks

...

to

...

Peter

...

Goron

...

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.

...

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)

...

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

...

    • 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

...

Anchor
DerbyInEclipse
DerbyInEclipse

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

...

Image Added

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

Image Added

  • Select Derby Embedded Database and click on Next.

Image Added

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

Image Added

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

Image Added

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

Image Added

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

Image Added

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

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

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

Image Added