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.
--------------------------------------------------------------------

Reply via email to