Hi list,<br><br>I have a very simple webapp demo based on drools-persistence-jpa.<br><br>I can obtain a StatefulKnowledgeSession from this statement:<br><br>    ksession = JPAKnowledgeService.newStatefulKnowledgeSession(this.kbase, null, env);<br>

<br>and the SessionInfo will be stored into database correctly, except that the rulesByteArray field is always empty.<br><br>Then I use the following statement to retrieve this ksession, but NPE occurred.<br><br>    ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(<br>

                        command.getSessionId(), this.kbase, null, env);<br><br>I&#39;ve read the code (JPASessionMarshallingHelper.loadSnapshot()) and find that this should be caused by the empty rulesByteArray filed.<br>

<br>I&#39;m wondering in which case this field is empty, and how to make it work correct.<br><br>Below is the stacktrace:<br><br>Caused by: java.lang.IllegalStateException: java.lang.reflect.InvocationTargetException<br>
    at org.drools.persistence.jpa.impl.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:110)<br>
    at org.drools.persistence.jpa.impl.KnowledgeStoreServiceImpl.loadStatefulKnowledgeSession(KnowledgeStoreServiceImpl.java:78)<br>    at org.drools.persistence.jpa.JPAKnowledgeService.loadStatefulKnowledgeSession(JPAKnowledgeService.java:118)<br>

    at com.zyeeda.framework.knowledge.internal.DroolsKnowledgeServiceProvider.execute(DroolsKnowledgeServiceProvider.java:165)<br>    at $KnowledgeService_12c173f2df7.execute($KnowledgeService_12c173f2df7.java)<br>    at com.zyeeda.framework.resources.SampleFlowResource.start(SampleFlowResource.java:36)<br>

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br>    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>

    at java.lang.reflect.Method.invoke(Method.java:597)<br>    at org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:173)<br>    at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:89)<br>

    ... 49 more<br>Caused by: java.lang.reflect.InvocationTargetException<br>    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)<br>    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)<br>

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)<br>    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)<br>    at org.drools.persistence.jpa.impl.KnowledgeStoreServiceImpl.buildCommanService(KnowledgeStoreServiceImpl.java:95)<br>

    ... 60 more<br>Caused by: java.lang.NullPointerException<br>    at java.io.ByteArrayInputStream.&lt;init&gt;(ByteArrayInputStream.java:89)<br>    at org.drools.persistence.session.JPASessionMarshallingHelper.loadSnapshot(JPASessionMarshallingHelper.java:85)<br>

    at org.drools.persistence.session.SingleSessionCommandService.initKsession(SingleSessionCommandService.java:196)<br>    at org.drools.persistence.session.SingleSessionCommandService.&lt;init&gt;(SingleSessionCommandService.java:159)<br>

<br>Thank you very much!<br clear="all"><br>-- <br>唐睿<br>