[jboss-user] [JBoss jBPM] - accessing jbpm from multiple web application

apdo do-not-reply at jboss.com
Thu Jan 24 16:57:58 EST 2008


We are upgrading from a old jbpm version to the latest one (3.2).

We are also modifying the way we will integrate jbpm to our application.

on the same web server, we plan to have one web site by business process. All these web site will share the same jbpm backend. The reason is that we want to allow users to developpe there own business processes to integrate to our application and we think that it is the more flexible way to do it.

has proposed in http://jboss.org/index.html?module=bb&op=viewtopic&t=126433.

I start a standalone jbpm. 

To do this, I create a MBean and bind JbpmConfiguration in JNDI.

I have create a BPMEngine.sar folder with the following structure

BPMEngine.sar 
  -lib
  |--jboss-el.jar
  |--jbpm-jpdl.jar
  |--jbpmService.jar (include the mbean used to register JbpmConfiguration in a mbean)
  -META-INF
  |--jboss-service.xml (use to genister the mbean)
  |--jboss-app.xml
  -hibernate.cfg.xml
  -jbpm.cfg.xml


jbpmServie.jar only contains a MBean where the code use to bind the JbpmConfiguration is

	private void rebind() throws NamingException {
		JbpmConfiguration jbpmConfiguration = JbpmConfiguration.getInstance();
		
		InitialContext rootCtx = new InitialContext();
		Name fullName = rootCtx.getNameParser("").parse(jndiName);
		System.out.println("fullName=" + fullName);
		NonSerializableFactory.rebind(fullName, jbpmConfiguration, true);
	}


1) is JNDI still the way to share jbpm among multiple web application?


I look into the jmxconsole and I saw an entry in the jndiview for my JbpmConfiguration.


Then, for my web app (a ear deploy on the same jboss server) that have to use the standalone jbpm I have registered a object that inherit from seam Jbpm. I have overright the startup method to set the jndiname.

the following class is use to connected to the binded Jbpmconfiguration in JNDI
@Scope(ScopeType.APPLICATION)
@BypassInterceptors
@Startup
@Name("org.jboss.seam.bpm.jbpm")
@Install(precedence=FRAMEWORK)
public class SolabsJbpm extends Jbpm {

	   private static final LogProvider log = Logging.getLogProvider(SolabsJbpm.class);
	   private JbpmConfiguration jbpmConfiguration;
	
	   @Create @Override
	   public void startup() throws Exception
	   {
		   super.startup();
		   setJbpmConfigurationJndiName("jbpm/Jbpmconfiguration");
		   Init.instance().setJbpmInstalled(true);
	   }
}

however I got the following exception:

Caused by: java.lang.ClassCastException: org.jbpm.JbpmConfiguration cannot be cast to org.jbpm.JbpmConfiguration
	at org.jboss.seam.bpm.Jbpm.initJbpmConfiguration(Jbpm.java:108)
	at org.jboss.seam.bpm.Jbpm.getJbpmConfiguration(Jbpm.java:93)
	at org.jboss.seam.example.todo.SolabsProcessDefinitionBean.findProcessDefinitionListToStart(SolabsProcessDefinitionBean.java:46)
	... 134 more


2) Do somebody know how to make the lookup in jndi work for JbpmConfiguration? 


	to test If my method to bind object in jndi work, I try to bind a String object and I was able to get it using a lookup. however it doestn't work with JbpmConfiguration.

I have also tested adding a call to PortableRemoteObject.narrow and I was still getting an exception:
Caused by: java.lang.ClassCastException
	at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:229)
	at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
	at org.jboss.seam.example.todo.SolabsJbpm.initJbpmConfiguration(SolabsJbpm.java:72)
	at org.jboss.seam.example.todo.SolabsJbpm.getJbpmConfiguration(SolabsJbpm.java:54)
	at org.jboss.seam.example.todo.SolabsProcessDefinitionBean.findProcessDefinitionListToStart(SolabsProcessDefinitionBean.java:46)
	... 130 more
Caused by: java.lang.ClassCastException: Class org.jbpm.JbpmConfiguration is not a valid remote interface
	at com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:225)
	... 134 more



An Phong Do
solabs.com

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

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



More information about the jboss-user mailing list