You call <br>   ObjectOutputStream out = new ObjectOutputStream( baos );<br>   out.writeObject( marshaller );<br>which would (if it succeeded) just serialize the MarshallerImpl, which is useless as it is nothing but the ballpen with which you write. You need to serialize the &quot;text&quot; via a call to    <br>
   marshaller.marshall(...)<br>as you do. But, to really get it on paper, you must write to a file. Using FileOutputStream might be an option.<br><br>-W<br><br><br><div class="gmail_quote">On 12 July 2011 12:37, clement.pernot <span dir="ltr">&lt;<a href="mailto:clement.pernot@newel.net">clement.pernot@newel.net</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I have try what you say. This didn&#39;t work.<br>
here is my full code:<br>
<br>
package com.sample;<br>
<br>
import java.io.ByteArrayOutputStream;<br>
import java.io.ObjectOutputStream;<br>
import java.io.Serializable;<br>
<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 org.drools.io.ResourceFactory;<br>
import org.drools.marshalling.Marshaller;<br>
import org.drools.marshalling.MarshallerFactory;<br>
import org.drools.marshalling.ObjectMarshallingStrategy;<br>
import org.drools.runtime.StatefulKnowledgeSession;<br>
<br>
public class test{<br>
<br>
        private static void compileRuleBase2( String drlPath, String rbPath )<br>
throws Exception {<br>
                KnowledgeBuilder kBuilder =<br>
KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
                kBuilder.add( ResourceFactory.newFileResource( drlPath ),<br>
ResourceType.DRL );<br>
                if( kBuilder.hasErrors() ){<br>
                    for( KnowledgeBuilderError err: kBuilder.getErrors() ){<br>
                        System.err.println( err.toString() );<br>
                    }<br>
                    throw new IllegalStateException( &quot;DRL errors&quot; );<br>
                }<br>
                KnowledgeBase kBase = KnowledgeBaseFactory.newKnowledgeBase();<br>
                kBase.addKnowledgePackages( kBuilder.getKnowledgePackages() );<br>
<br>
                try {<br>
                        KnowledgeBase kbase = readKnowledgeBase();<br>
                        StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession();<br>
<br>
                        Message message = new Message();<br>
                        message.setMessage(&quot;Hello World&quot;);<br>
                        message.setStatus(Message.HELLO);<br>
<br>
                        ksession.insert(message);<br>
<br>
                        ObjectMarshallingStrategy oms =<br>
MarshallerFactory.newIdentityMarshallingStrategy();<br>
                ByteArrayOutputStream baos = new ByteArrayOutputStream();<br>
                        Marshaller marshaller = MarshallerFactory.newMarshaller(<br>
ksession.getKnowledgeBase(), new ObjectMarshallingStrategy[]{ oms } );<br>
<br>
                        marshaller.marshall( baos, ksession );<br>
<br>
                        ObjectOutputStream out = new ObjectOutputStream( baos );<br>
                    out.writeObject( marshaller );<br>
                    out.close();<br>
<br>
                        baos.close();<br>
                        ksession.fireAllRules();<br>
<br>
                } catch (Throwable t) {<br>
                        t.printStackTrace();<br>
                }<br>
            }<br>
<br>
        public static final void main(String[] args) {<br>
                try {<br>
                        compileRuleBase2(&quot;Sample.drl&quot;, &quot;drools_compiled_file_with_fact&quot; );<br>
                } catch (Exception e) {<br>
                        e.printStackTrace();<br>
                }<br>
        }<br>
<br>
        private static KnowledgeBase readKnowledgeBase() throws Exception {<br>
                KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder();<br>
                kbuilder.add(ResourceFactory.newClassPathResource(&quot;Sample.drl&quot;),<br>
ResourceType.DRL);<br>
                KnowledgeBuilderErrors errors = kbuilder.getErrors();<br>
                if (errors.size() &gt; 0) {<br>
                        for (KnowledgeBuilderError error: errors) {<br>
                                System.err.println(error);<br>
                        }<br>
                        throw new IllegalArgumentException(&quot;Could not parse knowledge.&quot;);<br>
                }<br>
                KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase();<br>
                kbase.addKnowledgePackages(kbuilder.getKnowledgePackages());<br>
                return kbase;<br>
        }<br>
<br>
        public static class Message implements Serializable{<br>
<br>
                public static final int HELLO = 0;<br>
                public static final int GOODBYE = 1;<br>
                private String message;<br>
                private int status;<br>
<br>
                public String getMessage() {<br>
                        return this.message;<br>
                }<br>
                public void setMessage(String message) {<br>
                        this.message = message;<br>
                }<br>
                public int getStatus() {<br>
                        return this.status;<br>
                }<br>
                public void setStatus(int status) {<br>
                        this.status = status;<br>
                }<br>
        }<br>
}<br>
<br>
<br>
<br>
here is my error:<br>
<br>
java.io.NotSerializableException:<br>
org.drools.marshalling.impl.DefaultMarshaller<br>
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)<br>
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)<br>
        at com.sample.test.compileRuleBase2(test.java:59)<br>
        at com.sample.test.main(test.java:73)<br>
<br>
<br>
Thank you for your reply, I think I am near the solution<br>
<font color="#888888"><br>
--<br>
View this message in context: <a href="http://drools.46999.n3.nabble.com/Drools-and-serialize-tp3161882p3162038.html" target="_blank">http://drools.46999.n3.nabble.com/Drools-and-serialize-tp3161882p3162038.html</a><br>
Sent from the Drools: User forum mailing list archive at Nabble.com.<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</font></blockquote></div><br>