Eclipse tools ClassNotFoundException
by paulB
Hi,
I just updated the tooling in Eclipse from 5.0 to 5.1.1. Now, anytime I try
to create a Flow, I get the following exception:
java.lang.NoClassDefFoundError: org/drools/xml/ProcessBuildData
at org.drools.bpmn2.xml.ProcessHandler.start(ProcessHandler.java:84)
at
org.drools.xml.ExtensibleXmlParser.startElement(ExtensibleXmlParser.java:384)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501)
at
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:688)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2747)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
at
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
at
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
at
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.drools.xml.ExtensibleXmlParser.read(ExtensibleXmlParser.java:295)
at org.drools.xml.ExtensibleXmlParser.read(ExtensibleXmlParser.java:174)
at org.drools.compiler.xml.XmlProcessReader.read(XmlProcessReader.java:44)
at
org.drools.eclipse.flow.bpmn2.editor.BPMNModelEditor.createModel(BPMNModelEditor.java:190)
at
org.drools.eclipse.flow.common.editor.GenericModelEditor.setInput(GenericModelEditor.java:285)
at
org.drools.eclipse.flow.bpmn2.editor.BPMNModelEditor.setInput(BPMNModelEditor.java:93)
at org.eclipse.gef.ui.parts.GraphicalEditor.init(GraphicalEditor.java:318)
at org.eclipse.ui.internal.EditorManager.createSite(EditorManager.java:798)
at
org.eclipse.ui.internal.EditorReference.createPartHelper(EditorReference.java:644)
at
org.eclipse.ui.internal.EditorReference.createPart(EditorReference.java:462)
at
org.eclipse.ui.internal.WorkbenchPartReference.getPart(WorkbenchPartReference.java:595)
at
org.eclipse.ui.internal.EditorReference.getEditor(EditorReference.java:286)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditorBatched(WorkbenchPage.java:2857)
at
org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:2762)
at org.eclipse.ui.internal.WorkbenchPage.access$11(WorkbenchPage.java:2754)
at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:2705)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2701)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2685)
at
org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:2676)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:651)
at org.eclipse.ui.ide.IDE.openEditor(IDE.java:610)
at
org.drools.eclipse.flow.ruleflow.NewRuleFlowFilePage.finish(NewRuleFlowFilePage.java:72)
at
org.drools.eclipse.flow.ruleflow.NewRuleFlowFileWizard.performFinish(NewRuleFlowFileWizard.java:50)
at
org.eclipse.jface.wizard.WizardDialog.finishPressed(WizardDialog.java:752)
at
org.eclipse.jface.wizard.WizardDialog.buttonPressed(WizardDialog.java:373)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at
org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at
org.eclipse.ui.internal.actions.NewWizardShortcutAction.run(NewWizardShortcutAction.java:135)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
Caused by: java.lang.ClassNotFoundException: org.drools.xml.ProcessBuildData
at
org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at
org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at
org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 78 more
I made sure that the Drools Runtime is pointing to v5.1.1 jars. Any other
thoughts?
Thanks!
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Eclipse-tools-ClassNo...
Sent from the Drools - User mailing list archive at Nabble.com.
14 years
Validate/View Source or new rule (Decision table- web guided editor) - SerializationException - Guvnor 5.1.1
by Achyutha, Venkata
Hi,
Till few days ago we use to deploy 5.1.1 war from drools and site and work on it, it use to work perfectly
Recently we got guvnor 5.1.1 source code, did maven build locally and started using war after deploying in weblogic.
When I try to create rule of type "Decision table- web guided editor" and view source its giving SerializationException exception in UI an in server log it says
<Nov 22, 2010 6:03:01 PM IST> <Error> <ServletContext-/drools-guvnor> <BEA-000000> <guvnorService: An IncompatibleRemoteServiceException was thrown while processing this call.
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: com.google.gwt.user.client.rpc.SerializationException: Invalid type signature for org.drools.ide.common.client.modeldriven.dt.ActionSetFieldCol
at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:308)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:186)
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:224)
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
Truncated. see log file for complete stacktrace
com.google.gwt.user.client.rpc.SerializationException: com.google.gwt.user.client.rpc.SerializationException: Invalid type signature for org.drools.ide.common.client.modeldriven.dt.ActionSetFieldCol
Any idea what is happening here (I know some issue would be with gwt components), any work around needed in source code?. Help would be greatly appreciated.
Do we have stable working version of source code releases in 5.1.1 ( I need to use 5.1.1 only as we already have rule agent code working in production which is compatible with 5.1.1 only).
Many Thanks in advance.
[cid:image001.png@01CB8A6F.EC686A60]
Thanks
Kumar
14 years
Question about Drools
by Mashael Alduwais
Deal All,
I'm a graduate students, and I want to develop a fuzzy expert system using
the great Drools Expert
Is it support fuzzy logic or not?
Thank you in advance
14 years
Drools logging to console.
by Nadav Hashimshony
my drools application write debug and info message to the console.
i currently do the follwoing
in the main thread i i have:
private static KnowledgeBase m_droolsKbase= createKnowledgeBase();
private static KnowledgeBase createKnowledgeBase()
{
ResourceFactory.getResourceChangeNotifierService().start();
ResourceFactory.getResourceChangeScannerService().start();
Properties droolsConf = new Properties();
droolsConf.setProperty("drools.dialect.java.compiler", "JANINO");
KnowledgeBuilderConfiguration config =
KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(droolsConf, null);
KnowledgeBuilder builder =
KnowledgeBuilderFactory.newKnowledgeBuilder(config);
builder.add(ResourceFactory.newFileResource(m_properties.getProperty("drools.pkg")),
ResourceType.PKG);
if (builder.hasErrors())
{
throw new RuntimeException(builder.getErrors().toString());
}
KnowledgeBase knowledgeBase = KnowledgeBaseFactory.newKnowledgeBase();
knowledgeBase.addKnowledgePackages(builder.getKnowledgePackages());
m_droolsKagent=
KnowledgeAgentFactory.newKnowledgeAgent("DroolsAgent",knowledgeBase);
m_droolsKagent.applyChangeSet(ResourceFactory.newFileResource(m_properties.getProperty("drools.pkg.xml")));
return m_droolsKagent.getKnowledgeBase();
}
each worker thread does the following:
StatefulKnowledgeSession droolsSession =
m_droolsKagent.getKnowledgeBase().newStatefulKnowledgeSession();
//KnowledgeRuntimeLogger logger =
KnowledgeRuntimeLoggerFactory.newConsoleLogger(droolsSession);
//KnowledgeRuntimeLogger logger =
KnowledgeRuntimeLoggerFactory.newFileLogger(droolsSession,
"var/log/ctch/ctDefender/ctDefenderDrools.log");
.
.
.
Even if the logger lines are commented i still get log prints to console
(STDOUT)
how can i control them? stop them?
Thanks.
Nadav.
14 years
What should I insert into the working memory?
by Chris Selwyn
I am working on a project that is using Drools to perform validation of
hierarchical XML messages.
So I have passed the XSDs through JAXB and have a set of interrelated
Java objects.
One of these objects (naturally) represents the root of the messages and
the others represent the intermediate and leaf nodes of the message.
My question is: Should I traverse the tree and insert each object into
the working memory or should I just insert the root object into the
working memory?
If I insert each object into the memory then I have a lot of flexibility
about how I write my rules... I can start by focussing on the particular
part of the message that I want to detect an error in.
However, I then have to perform a whole bunch of "joining" clauses to
correctly "connect up" to the other objects in the working memory.
(This is how I am doing it at the moment... I have a mechanism that uses
the Java Introspector. It identifies by package name which parts of the
data model get inserted into the WM)
On the other hand, I could just insert the root object into the WM. This
means that I would have to write really complicated where clauses on the
root object but very much simplifies the WM loading process.
All of the examples that I have seen have a very simple flat
(non-hierarchical) structure that don't really give a hint as to what a
"best practice" might be.
Any suggestions/insights welcome :-)
Chris Selwyn
14 years
Maven builds for drools-flow
by Brian Wallis
I'm trying to get a simple standalone drools-flow build working using maven and cannot seem to resolve the dependencies.
What are the dependencies for drools-flow? I've found mention of drools-flow-core and drools-flow-compiler but they are only available for 5.2.0 snapshot and I was wanting to use 5.1.1.
I'm having no end of problems with the 5.2.0-SNAPSHOT dependencies. I've attached the pom and here is the output I get:
t% mvn clean install
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Building Coding Workflow
[INFO] task-segment: [clean, install]
[INFO] ------------------------------------------------------------------------
[INFO] [clean:clean {execution: default-clean}]
[INFO] Deleting directory /Users/bwallis/src/Drools/install/Coding/target
[INFO] [resources:resources {execution: default-resources}]
[WARNING] Using platform encoding (MacRoman actually) to copy filtered resources, i.e. build is platform dependent!
[INFO] Copying 2 resources
[INFO] Copying 3 resources
[INFO] snapshot org.drools:drools-flow-core:5.2.0.SNAPSHOT: checking for updates from jboss-public-repository-group
Downloading: https://repository.jboss.org/nexus/content/groups/public/org/drools/drool...
3K downloaded (drools-flow-core-5.2.0.20101123.060233-137.pom)
[INFO] snapshot org.drools:drools:5.2.0.SNAPSHOT: checking for updates from jboss-public-repository-group
Downloading: https://repository.jboss.org/nexus/content/groups/public/org/drools/drool...
[INFO] Unable to find resource 'org.drools:drools:pom:5.2.0.SNAPSHOT' in repository jboss-public-repository-group (https://repository.jboss.org/nexus/content/groups/public)
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error building POM (may not be this project's POM).
Project ID: null:drools-flow-core:jar:null
Reason: Cannot find parent: org.drools:drools for project: null:drools-flow-core:jar:null for project null:drools-flow-core:jar:null
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12 seconds
[INFO] Finished at: Sun Nov 28 14:01:25 EST 2010
[INFO] Final Memory: 18M/81M
[INFO] ------------------------------------------------------------------------
Brian Wallis
InfoMedix | Architect
p: 3 8615 4553 | f: 3 8615 4501
e: brian.wallis(a)infomedix.com.au
Level 5, 451 Little Bourke Street, Melbourne VIC 3000
14 years
Drools-server and fact-IDs - emptying/resetting stateful sessions
by flo
Hello,
I'm currently working to setup a experimental drools decision service with
the drools-server component via REST. In the server, I run a stateful
session with rules from a guvnor repo. The stateful session absolutely needs
to stay stateful because I use some of the CEP features in my rules.
What I try to achieve at the moment is to "clean up" this session if my
client (there is just one single client)(re-)connects. That basically means
either to clear out the working memory by doing some retracts, or to reset
the whole server.
So, my first approach was a get-objects command to get handles to all
objects in the working memory (to retract them one after another), but soon
I discovered that the get-objects result doesn't provide fact-ids for its
results. As it seems, the same also applies to queries. But without fact-id,
no retracts can be made.
My second approach to reset the whole session or server also failed, because
there is no dedicated command for this and I'm not enough into java app
server stuff to implement something like that on the fly. But this solution
would also have the advantage that the rules would get reloaded after the
reset, which would really simplify things (as the resource change scanner
obviously doesn't work with guvnor and drools-server - at least I didn't get
it to work, and as it seems the problem is also know on this list).
So my question is - does someone know either how to reset the whole
drools-server via REST or alternatively a possibility how to gather all
facts in the WM with their corresponding fact ids?
Thanks for your help, really appreciate it!
Best regards,
flo
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Drools-server-and-fac...
Sent from the Drools - User mailing list archive at Nabble.com.
14 years
Resuming rule flow using nodeId
by drdaveg
I've been working on a proof-of-concept where microseconds count and I need
more performance than JPAKnowledgeService's hibernate/jpa/jta stack can
provide. I can use process event listener's to get the processId, nodeId,
sessionId to persist the state of a rule flow but can't find an API that
would let me resume a rule flow, BPMN, or BPMN2 module at the node
corresponding to the nodeId.
Any thoughts on the code needed to start the process at the node having a
particular id within a rule flow? Thanks!
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Resuming-rule-flow-us...
Sent from the Drools - User mailing list archive at Nabble.com.
14 years