Hi, I am using a file of jess rules in a Java application through the javax.rules API (JSR-94 API). However I would like to add some additional Jess commands written in Java. Therefore I have followed the manual with the ExMyUpcase example.
Here is the following code that I am using to create a RuleExecutionSet: // Get a RuleRuntime RuleRuntime runtime = serviceProvider.getRuleRuntime(); // Create a StatelessRuleSession StatelessRuleSession session = (StatelessRuleSession)runtime.createRuleSession(URI, new HashMap(),RuleRuntime.STATELESS_SESSION_TYPE); // Execute the rules List input = new ArrayList(); List results = session.executeRules(input); This code works properly when calling non-user defined commands and the ExMyUpcase command works when launching the rules file alone. But when calling the rules file, containing the ExMyUpcase command, through the javax.rules API, it throws the following exception: RuleException(javax.rules.RuleSessionCreateException: Problem creating rule session), root cause(java.io.NotSerializableException: builtinsJess.MyUpcase) at jess.jsr94.h.<init>(Unknown Source) at jess.jsr94.c.<init>(Unknown Source) at jess.jsr94.l.createRuleSession(Unknown Source) at rules.Handler.execute(Handler.java:76) at rules.Handler.run(Handler.java:19) at principal.Main.main(Main.java:64) Caused by: java.io.NotSerializableException: builtinsJess.MyUpcase at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) at java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.writeObject(Unknown Source) at java.util.HashMap.writeObject(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) at java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source) at java.io.ObjectOutputStream.defaultWriteObject(Unknown Source) at java.util.Collections$SynchronizedMap.writeObject(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source) at java.io.ObjectOutputStream.writeSerialData(Unknown Source) at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source) at java.io.ObjectOutputStream.writeObject0(Unknown Source) at java.io.ObjectOutputStream.writeObject(Unknown Source) at jess.Rete.bsave(Unknown Source) at jess.jsr94.j.clone(Unknown Source) ... 6 more Is there something I am doing wrong? Thanks in advance, Amandine -------------------------------------------------------------------- To unsubscribe, send the words 'unsubscribe jess-users y...@address.com' in the BODY of a message to majord...@sandia.gov, NOT to the list (use your own address!) List problems? Notify owner-jess-us...@sandia.gov. --------------------------------------------------------------------