Enhanced business classes not found

Exception:

You try to make a business object persistent with makePersistent() and obtain the following exception:

com.signsoft.ibo.exception.IBOJDOUserException:
      [IBO#2010]: Object is not PersistenceCapable::
      pc=com.intellibo.sample.firststeps.Person@bb7759:      
Reason:

This exception is thrown, if there is no enhanced class belonging to the business object found.

Possible reasons are:

  1. The classes are not enhanced correctly (see section "Problems with the enhancer") or they are enhanced correctly but not marked as persistence-capable (for instance because no JDO metadata has been found).
  2. You did not refer to the correct path of the enhanced classes in your application (directory build/enhanced_do ).
  3. Your application finds the enhanced classes (in directory build/enhanced_do ) only after the classes in directory build/java_do .

Solution:

Regarding 1.:

Please check, if the enhancing process has been running accurate, all necessary JDO files are available and if the needed business classes are actually marked as persistence-capable (see also section "Problems with the enhancer").

Regarding 2.:

Check the CLASSPATH of your application, particularly with regard to the path of the enhanced classes of the business object (in our sample: build/enhanced_do ). Often it refers to the build/java_do directory accidentally. Complete or correct the path settings.

Regarding 3.:

If your CLASSPATH references directory build/java_do as well as build/enhanced_do , you must ensure that the application finds the classes in the build/enhanced_do directory at first .

Using the Eclipse development environment you can do this by calling the properties of your business project and selecting Java Build Path therein. Under " Order and Export " you may find your build/enhanced_do directory (if you already included it in your CLASSPATH ). Choose this directory and move it at the top by clicking the "Up" button. In this way you ensure that the enhanced classes are found at first in the CLASSPATH.

Figure: Eclipse "Order and Export"

images/userguide_en/propertiesOrderExport.gif