[rules-users] OSGI, classloading, and imports in KnowledgeBuilder
Simon Thum
simon.thum at gmx.de
Wed Aug 12 08:39:12 EDT 2009
Lasse.Wallentin at apcc.com wrote:
>>> Can anyone sketch a setup so that I can use Drools from within an
> Eclipse
>>> plugin?
>> I've got it running. You need to make sure your classloaders are the
>> right ones.
>> I use the
>> new PackageBuilderConfiguration(Classloader, Properties)
>>
>> ctor (if you're setting CL later, Properties may fail to apply) and
>>
>> new RuleBaseConfiguration(Classloader)
>>
>> respectively. I guess the knowledge-based apis have matching ctors. I
>> use the classloader of my project, which imports the needed drools
>> namespaces. That last part may need some time, but I's doable.
>>
>
> I have tried the following:
>
> KnowledgeBuilderConfiguration builderConfiguration =
> KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(null,
> getClass().getClassLoader());
> KnowledgeBuilder kbuilder =
> KnowledgeBuilderFactory.newKnowledgeBuilder(builderConfiguration);
> Resource pathResource = ResourceFactory.newClassPathResource(path,
> getClass());
> kbuilder.add(pathResource, ResourceType.DTABLE, dtableconfiguration);
>
> However it still fails ...
>
> Does this compare to what you are doing? Are you able to do DecisionTables
> as well?
Roughly; I use neither knowledge API nor tables. However I guess you're
not importing org.drools.base.extractors, so your classloader won't let
drools load that class. There was a heap of drools stuff I've never
heard of but had to import before it worked.
HTH,
Simon
More information about the rules-users
mailing list