Community

Different ClassLoader, ClassCastException

created by Konrad Schuler in jBPM - View the full discussion

Hi,

 

first, something to the background.

I try to run a simple BPMN 2.0 Process on jbpm-4.4-SNAPSHOT, where the user tasks can be handled by a Portlet (JSF, Facelets) on Liferay 5.2.3. The AS is JBoss 5.1.

 

The deployment of the Process I do as follows

ProcessEngine pe=new Configuration().buildProcessEngine();
RepositoryService repositoryService = pe.getRepositoryService();
NewDeployment deployment = repositoryService.createDeployment();
deployment.addResourceFromClasspath("myprocess.bpmn.xml");
deployment.deploy();

and it works fine.

 

Than I start the process as follows

Customer customer=new Customer("Firstname", "Lastname");
Map<String, Object> variables = new HashMap<String, Object>();
variables.put("customer", customer);
ProcessInstance pi = pe.getExecutionService().startProcessInstanceByKey("myprocess", variables);

and it also works fine.

 

Than in a JSF Bean I wand to read the "customer" variable to handle a user task. So I do the following.

String executionId=pe.getTaskService().getTask(currentTaskId).getExecutionId();
Customer customer=(Customer)pe.getExecutionService().getVariable(executionId, "customer");

And here I have a problem.

If the com.mycomp.Customer class is within my .war than there is a ClassNotFoundException .. com.mycomp.Customer...

If I put the com.mycomp.Customer class to the JBoss (global) libs, than there is a ClassCastException ... can not cast com.mycomp.Customer to com.mycomp.Customer ...

- I am sure that there is only one com.mycomp.Customer class within my JBoss

- And the com.mycomp.Customer class implements Serializable with a  generated serial version id

 

I think the problem is the different ClassLoader. After debugging I've found out that the ClassLoader of the class of

pe.getExecutionService().getVariable(executionId, "customer")
 

is BaseClassLoader@c94114{vfsfile:/C:/Programms/jboss-5.1.0.GA/server/default/conf/jboss-service.xml}

and the ClassLoader of

Customer customer...
 

is BaseClassLoader@12e43f8{vfsfile:/C:/Programms/jboss-5.1.0.GA/server/default/deploy/MyWebApp.war/}

 

So what can I do to solve the problem.

Thank you!!!

Reply to this message by going to Community

Start a new discussion in jBPM at Community