[jboss-user] [jBPM] - Different ClassLoader, ClassCastException

Konrad Schuler do-not-reply at jboss.com
Thu Apr 1 10:34:31 EDT 2010


Konrad Schuler [http://community.jboss.org/people/pseudoJBoss] created the discussion

"Different ClassLoader, ClassCastException"

To view the discussion, visit: http://community.jboss.org/message/535208#535208

--------------------------------------------------------------
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 at c94114{vfsfile:/C:/Programms/jboss-5.1.0.GA/server/default/conf/jboss-service.xml}
and the ClassLoader of
Customer customer...
 

is BaseClassLoader at 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
[http://community.jboss.org/message/535208#535208]

Start a new discussion in jBPM at Community
[http://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2034]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20100401/1d9f8d29/attachment.html 


More information about the jboss-user mailing list