[jboss-user] [JBoss jBPM] - Exception when calling a bpel-process with wait statement

zauberlehrling do-not-reply at jboss.com
Tue Jan 16 17:26:47 EST 2007


Hello,

I have a simple bpel process definition:
<?xml version="1.0" encoding="UTF-8"?>
  | <bpws:process xmlns:bpws="http://schemas.xmlsoap.org/ws/2004/03/business-process/"
  |                          xmlns:ns="http://www.kiag.comArtifacts"
  |                          xmlns:ns0="http://target.namespace" 
  |                          xmlns:tns="http://www.kiag.com"
  |                          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  |                         exitOnStandardFault="yes" 
  |                         name="Starter"
  |                         suppressJoinFailure="no" 
  |                         targetNamespace="http://www.kiag.com">
  | <bpws:import importType="http://schemas.xmlsoap.org/wsdl/" 
  |                        location="Starter.wsdl" namespace="http://www.kiag.com"/>
  | <bpws:import importType="http://www.w3.org/2001/XMLSchema"
  |                        location="bundleentry://288/cache/www.w3.org/2001/XMLSchema.xsd" 
  |                        namespace="http://www.w3.org/2001/XMLSchema"/>
  | <bpws:partnerLinks>
  | <bpws:partnerLink myRole="StarterProvider" name="client" partnerLinkType="tns:Starter"/>
  | </bpws:partnerLinks>
  | <bpws:variables>
  | <bpws:variable messageType="tns:StarterRequestMessage" name="input"/>
  | <bpws:variable messageType="tns:StarterResponseMessage" name="output"/>
  | </bpws:variables>
  | <bpws:sequence name="main">
  | <bpws:receive createInstance="yes" 
  |                        name="receiveInput" 
  |                        operation="process" 
  |                        partnerLink="client" 
  |                        portType="tns:Starter" 
  |                        variable="input"/>
  | <bpws:assign name="Assign" validate="no">
  | <bpws:copy>
  | <bpws:from>
  | <bpws:literal>Hello</bpws:literal>
  | </bpws:from>
  | <bpws:to part="response" variable="output">
  | <bpws:query queryLanguage="http://www.w3.org/TR/1999/REC-xpath-19991116">
  |                      <![CDATA[/tns:result]]>
  | </bpws:query>
  | </bpws:to>
  | </bpws:copy>
  | </bpws:assign>
  | <bpws:wait>
  | <bpws:for><![CDATA['PT20S']]></bpws:for>
  | </bpws:wait>
  | <bpws:reply name="replyOutput" 
  |                      operation="process" 
  |                      partnerLink="client" 
  |                      portType="tns:Starter" 
  |                      variable="output"/>
  | </bpws:sequence>
  | </bpws:process>
This process contains a  receive with a reply and I instantiate the output variable 'output' with "Hello". There is a wait statement between assign and reply waiting 20 seconds. 
I created this process with the bpel designer. I can deploy this definition and I can start this process calling the Starter webservice. But then an  exception is thrown in the applicarion server: 22:44:22,057 ERROR [StartListener] could not start process instance
  | java.lang.IllegalAccessException: Class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer can not access a member of class org.jbpm.bpel.sublang.def.Snippet with modifiers "public"
  | 	at sun.reflect.Reflection.ensureMemberAccess(Reflection.java:65)
  | 	at java.lang.reflect.Method.invoke(Method.java:578)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
  | 	at org.jbpm.bpel.sublang.def.Expression_$$_javassist_94.getText(Expression_$$_javassist_94.java)
  | 	at org.jbpm.bpel.alarm.Alarm.toString(Alarm.java:145)
  | 	at java.lang.String.valueOf(String.java:2615)
  | 	at java.lang.StringBuffer.append(StringBuffer.java:220)
  | 	at org.jbpm.bpel.alarm.Alarm.createTimer(Alarm.java:93)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
  | 	at org.jbpm.bpel.alarm.Alarm_$$_javassist_1.createTimer(Alarm_$$_javassist_1.java)
  | 	at org.jbpm.bpel.def.Wait.execute(Wait.java:46)
  | 	at org.jbpm.bpel.def.Activity.enter(Activity.java:101)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:119)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:383)
  | 	at org.jbpm.bpel.def.Activity.leave(Activity.java:171)
  | 	at org.jbpm.bpel.def.Assign.execute(Assign.java:55)
  | 	at org.jbpm.bpel.def.Activity.enter(Activity.java:101)
  | 	at org.jbpm.graph.def.Transition.take(Transition.java:119)
  | 	at org.jbpm.graph.def.Node.leave(Node.java:383)
  | 	at org.jbpm.bpel.def.Activity.leave(Activity.java:171)
  | 	at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:57)
  | 	at org.jbpm.bpel.def.Receive.accept(Receive.java:82)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
  | 	at org.jbpm.bpel.def.Receive_$$_javassist_30.accept(Receive_$$_javassist_30.java)
  | 	at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:97)
  | 	at org.jbpm.bpel.def.Sequence.accept(Sequence.java:105)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  | 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  | 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  | 	at java.lang.reflect.Method.invoke(Method.java:585)
  | 	at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:205)
  | 	at org.jbpm.bpel.def.Activity_$$_javassist_11.accept(Activity_$$_javassist_11.java)
  | 	at org.jbpm.bpel.def.ProcessInstanceStarter.visit(ProcessInstanceStarter.java:43)
  | 	at org.jbpm.bpel.def.BpelDefinition.messageReceived(BpelDefinition.java:109)
  | 	at org.jbpm.bpel.integration.jms.StartListener.onMessage(StartListener.java:115)
  | 	at org.jboss.mq.SpyMessageConsumer.run(SpyMessageConsumer.java:696)
  | 	at java.lang.Thread.run(Thread.java:595)
  | 
I do not know why this wait statement causes  this exception.

A second question: I have changed the bpel process several times and have 
deployed the definition each time. Is it necessary to restart the application server each time?
I have recognized that the changes have not taken effect after the deployment. The behaviour was different only after an additional restart  of the application server .  

My environment: jbpm-bpel-1.1.Beta2.zip

Many thanks in advance,

Frank

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002473#4002473

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002473



More information about the jboss-user mailing list