DataBase Configuration for Drools
by wasim.khan318
Hi every body i am new to Drools section . What i want to achive in drool
let me axplain with example.
When
Price==$price
then
// some code
what we are trying to do is some how value of $price comes from
database.rather hard coding it
what i have did
1. Using jboss developer studio for developing Drool Application
2. Using MySql DataBase
3. My Class File
public static class Applicant {
//public static final int HELLO = 0;
//public static final int GOODBYE = 1;
private String Name;
private int Price;
//private String message;
//private int status;
public String getName()
{
return this.Name;
}
public void setName( String name)
{
this.Name=name;
}
public int getPrice()
{
return this.Price;
}
public void setPrice(int price)
{
this.Price=price;
}
public String GetData()
{
String p=null;
Connection con = null;
try {
Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection("my connection info ");
if(!con.isClosed())
System.out.println("Successfully connected to " +
"MySQL server using TCP/IP...");
} catch(Exception e) {
System.err.println("Exception: " + e.getMessage());
} finally {
}
try{
Statement smt=con.createStatement();
ResultSet rs=smt.executeQuery("select ItenPrice from Item Where
ItemId= 1");
while(rs.next())
{
p=rs.getString("ItenPrice");
}
}
catch(Exception a)
{
System.err.println("Exception: " + a.getMessage());
}
return p;
}
public void GetNewdata(Applicant Ap)
{
Ap.GetData();
}
/*
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
public int getStatus() {
return this.status;
}
public void setStatus(int status) {
this.status = status;
}*/
}
4. My drools File
package com.sample
import com.sample.DroolsTest.Applicant;
rule "Hello World"
when
A:Applicant( price<20 )
then
String a=A.GetData();
System.out.println( a );
end
5. what i want in when section insted of writing 20 i can write GetData()
which is returning value from data base, it is working fine in then section
but firing error in when section
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/DataBase-Configuratio...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 3 months
Deploying Guvnor 5.1 on Glassfish v3
by alim
Hello,
I downloaded Guvnor, web based BRMS (WAR) Version 5.1 and tried to deploy it
on Glassfish v3.
Unfortunately without success.
To be more specific:
I put "drools-5.1.1-guvnor.war" into
{glassfish_home}\domains\{configuration}\autodeploy and started Glassfish
within Eclipse 3.5, using Java 6.
I get following error:
Exception while invoking class org.glassfish.ejb.startup.EjbDeployer load
method
java.lang.RuntimeException: Unable to load EJB module. DeploymentContext
does not contain any EJB Check archive to ensure correct packaging for
C:\glassfishv3\glassfish\domains\domain1\applications\drools-5.1.1-guvnor
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:133)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at
org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:310)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at
org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:141)
at
org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:573)
at
org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:459)
at
org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:391)
at
org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:376)
at
org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:195)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Exception while loading the app
java.lang.RuntimeException: Unable to load EJB module. DeploymentContext
does not contain any EJB Check archive to ensure correct packaging for
C:\glassfishv3\glassfish\domains\domain1\applications\drools-5.1.1-guvnor
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:133)
at org.glassfish.ejb.startup.EjbDeployer.load(EjbDeployer.java:63)
at org.glassfish.internal.data.ModuleInfo.load(ModuleInfo.java:175)
at
org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:216)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:338)
at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:310)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
at
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at
org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:141)
at
org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:573)
at
org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:459)
at
org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:391)
at
org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:376)
at
org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:195)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
WARNING: [AutoDeploy] Autodeploy failed :
C:\glassfishv3\glassfish\domains\domain1\autodeploy\drools-5.1.1-guvnor.war.
INFO: [AutoDeploy] Selecting file
C:\glassfishv3\glassfish\domains\domain1\autodeploy\drools-5.1.1-guvnor.war
for autodeployment.
I've already tried the hints I found on Google such as changing the web.xml
to reference 2.5 schema. Didn't work.
Hope someone can help me.
Thanks a lot!
Audrey
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Deploying-Guvnor-5-1-...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 3 months
Re: [rules-users] champion challenger
by priyag
Hi,
I have heard about champion challenger concept in many BRMS now a days. Do
we have something like this in DROOLS also ?
Rgds
Priya
Disclaimer :- This e-mail and any attachment may contain confidential, proprietary or legally privileged information. If you are not the original intended recipient and have erroneously received this message, you are prohibited from using, copying, altering or disclosing the content of this message. Please delete it immediately and notify the sender. Newgen Software Technologies Ltd (NSTL) accepts no responsibilities for loss or damage arising from the use of the information transmitted by this email including damages from virus and further acknowledges that no binding nature of the message shall be implied or assumed unless the sender does so expressly with due authority of NSTL.
15 years, 3 months
Guvnor with JBoss AS on Ubuntu
by alim
Hello,
I downloaded the Standalone Guvnor with JBoss AS Version 5.1 and tried
running it on Ubuntu 8.04.4 LTS with Java 1.6.0_22.
It seems to start up well, no exceptions/errors. And at the end it even
states that it has started:
15:52:50,957 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on
http-127.0.0.1-9080
15:52:51,054 INFO [AjpProtocol] Starting Coyote AJP/1.3 on
ajp-127.0.0.1-8009
15:52:51,148 INFO [Server] JBoss (MX MicroKernel) [4.2.3.GA (build:
SVNTag=JBoss_4_2_3_GA date=200807181417)] Started in 35s:83ms
However, when I try to go to http://<host>:9080/drools-guvnor remotly I
always get "Connection Failed"!
But when I use "telnet localhost 9080" locally then it says:
"Trying 127.0.0.1...
Connected to localhost."
What am I doing wrong? Any help is much appreciated.
Thanks,
Audrey
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Guvnor-with-JBoss-AS-...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 3 months
Possible to enforce a unique salience?
by barnabyg
Hi,
Is it possible in Drools to enforce a unique salience?
Ideally this would be done at the point of entering a new rule.
For example, if a rule existed with salience of 17 and a user tried to add a
new rule of salience 17, an error message would be generated saying
'salience level already in use'.
Even better would be the ability to enforce a unique salience for rules
belonging to a particular ruleflow-group.
The reason for wanting to achieve this is to prevent indeterminate behaviour
when two or more rules exist with the same salience level.
Any help would be much appreciated.
Regards,
Barnaby
--
View this message in context: http://drools-java-rules-engine.46999.n3.nabble.com/Possible-to-enforce-a...
Sent from the Drools - User mailing list archive at Nabble.com.
15 years, 3 months
DroolsFlow 5.1.1 ForEach + XOR/OR Gateway = Impossible?
by Dirk Hermanns
Hi everybody!
I'm struggling with the forEach construct. We already had a Drools Flow
running using Drools 5.0.
Now we would like to port it to Drools Flow 5.1.1.
It seems that there is a problem with the ForEach Construct in combination
with the XOR Gateway (the same
seems to be true for the OR Gateway):
Even if i set both constrains of the gateway to "eval( true )" i got an
runtime Error like (full Stacktrace at the end of my post):
Caused by: java.lang.IllegalArgumentException: XOR split could not find at
least one valid outgoing connection for split Art des Arbeitsanstosses
pruefen
I can even reproduce this behaviour when building a small workflow from
scratch.
Had anyone else such an error? Does anyone know a workaround for this?
You can reproduce this with the attached Flows.
Any help is really appreciated!
Regards,
Dirk Hermanns
P.S.: If i try to build such an Flow using the new bpmn Notation, i get an
error when building the package in Guvnor: Workitem Node xxx has no
incoming connection.
So this doesn't seem to help :(. Has anyone got the forEach (or Multiple
Instances) feature with Drools 5.1.1 working?
org.drools.RuntimeDroolsException: Unexpected exception executing action
org.drools.process.instance.event.DefaultSignalManager$SignalAction@15c90f4
at org.drools.common.AbstractWorkingMemory.executeQueuedActions
(AbstractWorkingMemory.java:1473)
at org.drools.common.DefaultAgenda.fireAllRules
(DefaultAgenda.java:1074)
at org.drools.common.AbstractWorkingMemory.fireAllRules
(AbstractWorkingMemory.java:785)
at org.drools.common.AbstractWorkingMemory.fireAllRules
(AbstractWorkingMemory.java:751)
at
org.drools.process.instance.impl.DefaultWorkItemManager.completeWorkItem
(DefaultWorkItemManager.java:120)
at
de.lvm.vorverteilung.internal.util.VorvertelungsauftragAnalysierenWorkItemHandler.executeWorkItem
(VorvertelungsauftragAnalysierenWorkItemHandler.java:51)
at
org.drools.process.instance.impl.DefaultWorkItemManager.internalExecuteWorkItem
(DefaultWorkItemManager.java:72)
at
org.drools.workflow.instance.node.WorkItemNodeInstance.internalTrigger
(WorkItemNodeInstance.java:101)
at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger
(NodeInstanceImpl.java:117)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection
(NodeInstanceImpl.java:178)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted
(NodeInstanceImpl.java:144)
at
org.drools.workflow.instance.node.StartNodeInstance.triggerCompleted
(StartNodeInstance.java:49)
at
org.drools.workflow.instance.node.StartNodeInstance.internalTrigger
(StartNodeInstance.java:41)
at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger
(NodeInstanceImpl.java:117)
at org.drools.ruleflow.instance.RuleFlowProcessInstance.internalStart
(RuleFlowProcessInstance.java:32)
at org.drools.process.instance.impl.ProcessInstanceImpl.start
(ProcessInstanceImpl.java:192)
at
org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.start
(WorkflowProcessInstanceImpl.java:309)
at org.drools.common.AbstractWorkingMemory.startProcess
(AbstractWorkingMemory.java:1644)
at org.drools.impl.StatefulKnowledgeSessionImpl.startProcess
(StatefulKnowledgeSessionImpl.java:306)
at de.lvm.vorverteilung.internal.rules.TerminHRuleFlowTest.runTermin1
(TerminHRuleFlowTest.java:252)
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.junit.runners.model.FrameworkMethod$1.runReflectiveCall
(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run
(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively
(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate
(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate
(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate
(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runChild
(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild
(BlockJUnit4ClassRunner.java:44)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
at org.junit.internal.runners.statements.RunBefores.evaluate
(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate
(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run
(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run
(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run
(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main
(RemoteTestRunner.java:197)
Caused by: java.lang.IllegalArgumentException: XOR split could not find at
least one valid outgoing connection for split Art des Arbeitsanstosses
pruefen
at org.drools.workflow.instance.node.SplitInstance.internalTrigger
(SplitInstance.java:92)
at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger
(NodeInstanceImpl.java:117)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection
(NodeInstanceImpl.java:178)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted
(NodeInstanceImpl.java:144)
at
org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted
(ExtendedNodeInstanceImpl.java:53)
at
org.drools.workflow.instance.node.StateBasedNodeInstance.triggerCompleted
(StateBasedNodeInstance.java:117)
at
org.drools.workflow.instance.node.StateBasedNodeInstance.triggerCompleted
(StateBasedNodeInstance.java:98)
at
org.drools.workflow.instance.node.WorkItemNodeInstance.internalTrigger
(WorkItemNodeInstance.java:105)
at org.drools.workflow.instance.impl.NodeInstanceImpl.trigger
(NodeInstanceImpl.java:117)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerConnection
(NodeInstanceImpl.java:178)
at
org.drools.workflow.instance.impl.NodeInstanceImpl.triggerCompleted
(NodeInstanceImpl.java:144)
at
org.drools.workflow.instance.impl.ExtendedNodeInstanceImpl.triggerCompleted
(ExtendedNodeInstanceImpl.java:53)
at
org.drools.workflow.instance.node.StateBasedNodeInstance.triggerCompleted
(StateBasedNodeInstance.java:117)
at
org.drools.workflow.instance.node.StateBasedNodeInstance.triggerCompleted
(StateBasedNodeInstance.java:98)
at org.drools.workflow.instance.node.RuleSetNodeInstance.signalEvent
(RuleSetNodeInstance.java:71)
at
org.drools.workflow.instance.impl.WorkflowProcessInstanceImpl.signalEvent
(WorkflowProcessInstanceImpl.java:343)
at
org.drools.process.instance.event.DefaultSignalManager.internalSignalEvent
(DefaultSignalManager.java:79)
at org.drools.process.instance.event.DefaultSignalManager
$SignalAction.execute(DefaultSignalManager.java:167)
at org.drools.common.AbstractWorkingMemory.executeQueuedActions
(AbstractWorkingMemory.java:1471)
... 43 more
(See attached file: ZZTestFlow2.rf)(See attached file: ZZTestFlow.bpmn)
15 years, 3 months
Drools 4.0, Support for multiple pattern in accumulate source pattern
by Juergen
It appears as if accumulate does support only a single pattern CE as
source pattern, e.g.:
Number() from accumulate(
Cheese(
price : price
),
sum( price )
)
Is it possible to have more than one pattern in the source pattern, e.g.:
Number() from accumulate(
Cheese(
price : price,
type : type
)
Person(
favouriteCheese == type,
age > 30
),
sum( price )
)
The same could be said for collect, but there the problem to specify
which item of a matching tuple is to be collected, but this could be
handled recreating collect via accumulate, e.g.:
Collection() from accumulate(
cheese : Cheese(
type : type
)
Person(
favouriteCheese == type,
age > 30
),
collect( cheese )
)
15 years, 3 months