This content has been marked as final.
Show 1 reply
-
1. Re: Adding JBPM to existing JBOSS 4.0.4 AS
crussell42 Feb 6, 2007 9:56 AM (in response to jgreiner)For jbpm.3.2beta1 I have had some success but still get some exceptions related to transaction management when I try to signal a process to its end state.
In a nutshell assuming you are deploying jbpm-enterprise.ear.
1. Configure jboss with jms messaging as per jboss instructions.
2. Config your data source e.g. cp jbpm-ds.xml $jboss/server/messaging/deploy
2.5 Create the jbpm database using the scripts from jpdl/dist/ddl
e.g. jbpm.jpdl.hsqldb.sql
2.75 create and populate identity tables
Cant remember where I got these??create table JBPM_ID_GROUP (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), TYPE_ varchar(255), PARENT_ bigint, primary key (ID_)); create table JBPM_ID_MEMBERSHIP (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), ROLE_ varchar(255), USER_ bigint, GROUP_ bigint, primary key (ID_)); create table JBPM_ID_PERMISSIONS (ENTITY_ bigint not null, CLASS_ varchar(255), NAME_ varchar(255), ACTION_ varchar(255)); create table JBPM_ID_USER (ID_ bigint generated by default as identity (start with 1), CLASS_ char(1) not null, NAME_ varchar(255), EMAIL_ varchar(255), PASSWORD_ varchar(255), primary key (ID_)); alter table JBPM_ID_GROUP add constraint FK_ID_GRP_PARENT foreign key (PARENT_) references JBPM_ID_GROUP; alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_GRP foreign key (GROUP_) references JBPM_ID_GROUP; alter table JBPM_ID_MEMBERSHIP add constraint FK_ID_MEMSHIP_USR foreign key (USER_) references JBPM_ID_USER; INSERT INTO JBPM_ID_GROUP VALUES(1,'G','participant','security-role',NULL) INSERT INTO JBPM_ID_GROUP VALUES(2,'G','administrator','security-role',NULL) INSERT INTO JBPM_ID_GROUP VALUES(3,'G','hr','organisation',NULL) INSERT INTO JBPM_ID_GROUP VALUES(4,'G','sales','organisation',NULL) INSERT INTO JBPM_ID_GROUP VALUES(5,'G','manager','security-role',NULL) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(1,'M',NULL,NULL,2,2) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(2,'M',NULL,NULL,3,1) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(3,'M',NULL,NULL,3,3) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(4,'M',NULL,NULL,2,3) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(5,'M',NULL,NULL,1,4) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(6,'M',NULL,'boss',2,4) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(7,'M',NULL,NULL,2,5) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(8,'M',NULL,NULL,2,1) INSERT INTO JBPM_ID_MEMBERSHIP VALUES(9,'M',NULL,NULL,1,1) INSERT INTO JBPM_ID_USER VALUES(1,'U','cookie monster','cookie.monster@sesamestreet.tv','cookie monster') INSERT INTO JBPM_ID_USER VALUES(2,'U','ernie','ernie@sesamestreet.tv','ernie') INSERT INTO JBPM_ID_USER VALUES(3,'U','bert','bert@sesamestreet.tv','bert') INSERT INTO JBPM_ID_USER VALUES(4,'U','grover','grover@sesamestreet.tv','grover') insert into JBPM_ID_USER (ID_, CLASS_, NAME_, EMAIL_, PASSWORD_) values ('1', 'U', 'cookie monster', 'cookie.monster@sesamestreet.tv', 'cookie monster'); insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('2', 'U', 'ernie', 'ernie@sesamestreet.tv', 'ernie'); insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('3', 'U', 'bert', 'bert@sesamestreet.tv', 'bert'); insert into JBPM_ID_USER (ID_,CLASS_, NAME_, EMAIL_, PASSWORD_) values ('4', 'U', 'grover', 'grover@sesamestreet.tv', 'grover');
3. Add 2 queues to $jboss/server/messaging/deploy/jboss-messaging.sar/destinations-service.xml<mbean code="org.jboss.jms.server.destination.Queue" name="jboss.messaging.destination:service=Queue,name=JbpmCommandQueue" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <attribute name="SecurityConfig"> <security> <role name="guest" read="true" write="true"/> <role name="publisher" read="true" write="true" create="false"/> <role name="noacc" read="false" write="false" create="false"/> </security> </attribute> </mbean> <mbean code="org.jboss.jms.server.destination.Queue" name="jboss.messaging.destination:service=Queue,name=JbpmJobQueue" xmbean-dd="xmdesc/Queue-xmbean.xml"> <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends> <attribute name="SecurityConfig"> <security> <role name="guest" read="true" write="true"/> <role name="publisher" read="true" write="true" create="false"/> <role name="noacc" read="false" write="false" create="false"/> </security> </attribute> </mbean>
Or figure out how to add a jbpm-services.xml with same queue definitions.
4. Configure jboss's "other" security realm. The jbpm-console is using the security domain other. Therefore we need for the security domain other config to look like that sent in the
preconfigured jbpm starter kit server so I copied the following from the
starter kit/server/jbpm/conf/login-config.xml
e.g. Edit $jboss/server/messaging/conf/login-config.xml<application-policy name = "other"> <!-- A simple server login module, which can be used when the number of users is relatively small. It uses two properties files: users.properties, which holds users (key) and their password (value). roles.properties, which holds users (key) and a comma-separated list of their roles (value). The unauthenticatedIdentity property defines the name of the principal that will be used when a null username and password are presented as is the case for an unuathenticated web client or MDB. If you want to allow such users to be authenticated add the property, e.g., unauthenticatedIdentity="nobody" --> <!-- RUSSELL added this to match the jbpm server config given. Changed JbpmDS to DefaultDS so we can see stuff.--> <authentication> <login-module code="org.jboss.security.auth.spi.DatabaseServerLoginModule" flag="required"> <module-option name="dsJndiName">java:/DefaultDS</module-option> <module-option name="principalsQuery"> SELECT PASSWORD_ FROM JBPM_ID_USER WHERE NAME_=? </module-option> <module-option name="rolesQuery"> SELECT g.NAME_ ,'Roles' FROM JBPM_ID_USER u, JBPM_ID_MEMBERSHIP m, JBPM_ID_GROUP g WHERE g.TYPE_='security-role' AND m.GROUP_ = g.ID_ AND m.USER_ = u.ID_ AND u.NAME_=? </module-option> </login-module> </authentication> </application-policy>
You may want to leave your datasource at JbpmDS assuming step 2.
5. Deploy the ear cp jbpm-enterprise.ear $jboss/server/messaging/deploy
Should now be able to hit http://localhost:8080/jbpm-console
Depends on versions but you might also look at this posting for hints
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4003457#4003457