As an update: I tried several things to remedy this problem. I tried adding the
classloader to the JPA classes to the RuleBaseConfiguration but that had no effect. After
much code digging, debugging and research I decided to setShadowProxy(false) on the
RuleBaseConfiguration and low-and-behold things worked. No sure why Drools can't
create the proxies for the JPA classes. I will save that for the next rainy day.
Earnie1
________________________________
From: Earnest Dyke <earniedyke(a)yahoo.com>
To: JBoss Rules <rules-users(a)lists.jboss.org>
Sent: Wednesday, May 6, 2009 11:15:10 AM
Subject: [rules-users] Drools and OpenJPA
Greetings all,
I am trying to use Drools 4.0.7 with objects that are retrieved via OpenJPA. So I have a
Person entity which is in the package com.my.company.entity. When I retrieve it via
OpenJPA what I get, and subsequently insert into working memory, is a
org.apache.openjpa.enhance.com$my$company$entity$Person$pcsubclass. I have tried casting
before inserting into working memory but that does not change things. Drools is throwing
java.lang.NoClassDefFoundError:
org/apache/openjpa/enhance/com$my$company$entity$Person$pcsubclass exception.
Any ideas of how to get around this? I really don't want to have to declare the
concrete (OpenJPA) classes in my rules if I can help it.
Thanks in advance for any and all help!
Earnie!