<br>
I am starting with Drools. <br>
I am using Drools Flow 5.0.1, Eclipse 5.2, JDK 1.6.0. <br><br>
I
am trying to run the Evaluation Example. It has just 3 human tasks. I
launched a Mina task Server that seems to work fine. Error occurs on
the server when launching the ruflow that is trying to add the task to
the server. <br>
<br>
[10:01:12] NioProcessor-1 INFO [] []
[org.apache.mina.filter.logging.LoggingFilter] - CREATED<br>
[10:01:12] NioProcessor-1 INFO [] []
[org.apache.mina.filter.logging.LoggingFilter] - OPENED<br>
[10:01:12]
NioProcessor-1 INFO [] []
[org.apache.mina.filter.logging.LoggingFilter] - RECEIVED:
HeapBuffer[pos=0 lim=404 cap=2048: 00 00 01 90 AC ED 00 05 73 72 01 00
1F 6F 72 67...]<br>
[2010:04:91 10:04:60:exception] Uncaught exception on Server<br>
org.apache.mina.filter.codec.ProtocolDecoderException:
org.apache.mina.core.buffer.BufferDataException: <a target="_blank" href="http://java.io/">java.io</a>.EOFException
(Hexdump: 00 00 01 90 AC ED 00 05 73 72 01 00 1F 6F 72 67 2E 64 72 6F
6F 6C 73 2E 74 61 73 6B 2E 73 65 72 76 69 63 65 2E 43 6F 6D 6D 61 6E 64
78 70 00 00 00 00 73 72 01 00 13 6A 61 76 61 2E 75 74 69 6C 2E 41 72 72
61 79 4C 69 73 74 78 70 00 00 00 02 77 04 00 00 00 02 73 72 01 00 14 6F
72 67 2E 64 72 6F 6F 6C 73 2E 74 61 73 6B 2E 54 61 73 6B 78 70 77 D0 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00
05 65 6E 2D 55 4B 00 0A 45 76 61 6C 75 61 74 69 6F 6E 00 00 00 01 00 00
00 00 00 00 00 00 00 05 65 6E 2D 55 4B 00 0F 53 65 6C 66 20 45 76 61 6C
75 61 74 69 6F 6E 00 00 00 01 00 00 00 00 00 00 00 00 00 05 65 6E 2D 55
4B 00 0F 53 65 6C 66 20 45 76 61 6C 75 61 74 69 6F 6E 01 00 00 00 00 01
00 00 00 03 66 72 61 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 0D 41
64 6D 69 6E 69 73 74 72 61 74 6F 72 00 00 00 00 00 01 01 00 07 43 72 65
61 74 65 64 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 78 70 78 7E 72 01 00 23 6F
72 67 2E 64 72 6F 6F 6C 73 2E 74 61 73 6B 2E 73 65 72 76 69 63 65 2E 43
6F 6D 6D 61 6E 64 4E 61 6D 65 78 72 01 00 0E 6A 61 76 61 2E 6C 61 6E 67
2E 45 6E 75 6D 78 70 74 00 0E 41 64 64 54 61 73 6B 52 65 71 75 65 73 74)<br>
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:180)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)<br>
at
org.apache.mina.filter.logging.LoggingFilter.messageReceived(LoggingFilter.java:95)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain$HeadFilter.messageReceived(DefaultIoFilterChain.java:616)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)<br>
at
org.apache.mina.core.filterchain.DefaultIoFilterChain.fireMessageReceived(DefaultIoFilterChain.java:408)<br>
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.read(AbstractPollingIoProcessor.java:578)<br>
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:540)<br>
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.process(AbstractPollingIoProcessor.java:532)<br>
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.access$400(AbstractPollingIoProcessor.java:58)<br>
at
org.apache.mina.core.polling.AbstractPollingIoProcessor$Worker.run(AbstractPollingIoProcessor.java:857)<br>
at
org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:51)<br>
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)<br>
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown
Source)<br>
at java.lang.Thread.run(Unknown Source)<br>
Caused by: org.apache.mina.core.buffer.BufferDataException:
java.io.EOFException<br>
at
org.apache.mina.core.buffer.AbstractIoBuffer.getObject(AbstractIoBuffer.java:1630)<br>
at
org.apache.mina.filter.codec.serialization.ObjectSerializationDecoder.doDecode(ObjectSerializationDecoder.java:93)<br>
at
org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:173)<br>
at
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:170)<br>
... 19 more<br>
Caused by: java.io.EOFException<br>
at
java.io.ObjectInputStream$BlockDataInputStream.readBoolean(Unknown
Source)<br>
at <a target="_blank" href="http://java.io.objectinputstream.re/">java.io</a>.ObjectInputStream.readBoolean(Unknown
Source)<br>
at org.drools.task.Task.readExternal(Task.java:139)<br>
at java.io.ObjectInputStream.readExternalData(Unknown Source)<br>
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)<br>
at java.io.ObjectInputStream.readObject0(Unknown Source)<br>
at java.io.ObjectInputStream.readObject(Unknown Source)<br>
at java.util.ArrayList.readObject(Unknown Source)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)<br>
at java.lang.reflect.Method.invoke(Unknown Source)<br>
at <a target="_blank" href="http://java.io.objectstreamclass.in/">java.io</a>.ObjectStreamClass.invokeReadObject(Unknown
Source)<br>
at java.io.ObjectInputStream.readSerialData(Unknown Source)<br>
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)<br>
at java.io.ObjectInputStream.readObject0(Unknown Source)<br>
at <a target="_blank" href="http://java.io.objectinputstream.de/">java.io</a>.ObjectInputStream.defaultReadFields(Unknown
Source)<br>
at java.io.ObjectInputStream.readSerialData(Unknown Source)<br>
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)<br>
at java.io.ObjectInputStream.readObject0(Unknown Source)<br>
at java.io.ObjectInputStream.readObject(Unknown Source)<br>
at
org.apache.mina.core.buffer.AbstractIoBuffer.getObject(AbstractIoBuffer.java:1628)<br>
... 22 more<br>
<br>
The Server Code is:<br>
<br>
import org.drools.SystemEventListenerFactory;<br>
import org.drools.task.Task;<br>
import org.drools.task.User;<br>
import org.drools.task.service.ContentData;<br>
import org.drools.task.service.MinaTaskServer;<br>
import org.drools.task.service.TaskService;<br>
import org.drools.task.service.TaskServiceSession;<br>
<br>
public class Server {<br>
/**<br>
* @param args<br>
*/<br>
public static void main(String[] args) {<br>
// TODO Auto-generated method stub<br>
<br>
EntityManagerFactory emf =
Persistence.createEntityManagerFactory("org.drools.task");<br>
<br>
TaskService taskService = new TaskService(emf,
SystemEventListenerFactory.getSystemEventListener());<br>
<br>
TaskServiceSession taskSession = taskService.createSession();<br>
<br>
//Ajouter user.<br>
taskSession.addUser(new User("Mary"));<br>
taskSession.addUser(new User("John"));<br>
taskSession.addUser(new User("fra"));<br>
<br>
MinaTaskServer server = new MinaTaskServer( taskService );<br>
Thread thread = new Thread( server );<br>
thread.start(); <br>
}<br>
}<br>
<br>
<br>
And the Process part is: <br>
<br>
package com.sample;<br>
import java.util.HashMap;<br>
import java.util.Map;<br>
import org.drools.KnowledgeBase;<br>
import org.drools.KnowledgeBaseFactory;<br>
import org.drools.builder.KnowledgeBuilder;<br>
import org.drools.builder.KnowledgeBuilderError;<br>
import org.drools.builder.KnowledgeBuilderErrors;<br>
import org.drools.builder.KnowledgeBuilderFactory;<br>
import org.drools.builder.ResourceType;<br>
import <a target="_blank" href="http://org.drools.io.re/">org.drools.io</a>.ResourceFactory;<br>
import org.drools.logger.KnowledgeRuntimeLogger;<br>
import org.drools.logger.KnowledgeRuntimeLoggerFactory;<br>
import org.drools.process.workitem.wsht.WSHumanTaskHandler;<br>
import org.drools.runtime.StatefulKnowledgeSession;<br>
import org.drools.runtime.process.ProcessInstance;<br>
<br>
/**<br>
* This is a sample file to launch a process.<br>
*/<br>
public class RuleFlowTest {<br>
<br>
public static final void main(String[] args) {<br>
try {<br>
// load up the knowledge base<br>
KnowledgeBase kbase = readKnowledgeBase();<br>
StatefulKnowledgeSession ksession =
kbase.newStatefulKnowledgeSession();<br>
KnowledgeRuntimeLogger logger =
KnowledgeRuntimeLoggerFactory.newFileLogger(ksession, "test");<br>
<br>
//NEW<br>
ksession.getWorkItemManager().registerWorkItemHandler("Human Task", new
WSHumanTaskHandler());<br>
Map<String, Object> params = new HashMap<String,
Object>();<br>
params.put("employee","fra");<br>
<br>
// end NEW<br>
<br>
// start a new process instance<br>
ProcessInstance processInstance =
ksession.startProcess("com.sample.ruleflow",params); //modificat params<br>
ksession.insert(processInstance);<br>
<br>
logger.close();<br>
<br>
} catch (Throwable t) {<br>
t.printStackTrace();<br>
}<br>
}java.io.EOFException when trying Drools rulefow Evaluation example<br>
<br>
private static KnowledgeBase readKnowledgeBase() throws Exception {<br>
KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
kbuilder.add(ResourceFactory.newClassPathResource("ruleflow.rf"),
ResourceType.DRF);<br>
KnowledgeBuilderErrors errors = kbuilder.getErrors();<br>
if (errors.size() > 0) {<br>
for (KnowledgeBuilderError error: errors) {<br>
System.err.println(error);<br>
}<br>
throw new IllegalArgumentException("Could not parse
knowledge.");<br>
}<br>
KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br>
kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>
return kbase;<br>
}<br>
}<br>
<br>
Thankyou in advance a lot for you help.