Abhishek Chikane [
https://community.jboss.org/people/abhishek.chikane] modified the
document:
"jBPM Weblogic"
To view the document, visit:
https://community.jboss.org/docs/DOC-15968
--------------------------------------------------------------
Finally I got jBPM deployed successfully on Weblogic 9.2. Thanks to "Maciej Swiderski
(
https://community.jboss.org/people/swiderski.maciej)" and "HuiSheng Xu
(
https://community.jboss.org/people/rebody)" for their timely help and suggestions. I
am also very much thankful to my company CrossCountry Infotech
(
http://www.crosscountry.in/cci/) for supporting my efforts.
I used *Weblogic 9.2, jBPM 4.4, Mysql 5 and Eclipse 3.5* combination. I would suggest you
to install Weblogic Eclipse plug-in. That will help you to edit some of the Weblogic
configuration xmls.
I am assuming that you have downloaded and installed Weblogic 9.2, Mysql 5.
h2. Pre Deployment Activities
We need to create two *shared libraries for Weblogic*, one for jBPM core jars and one for
BIRT jars. +Instead of creating the shared libraries you can put the said jars on
classpath but I would recommend the shared library approach.+
+
+
The shared library approach will give us control over loading required classes from our
package if same are conflicting with Weblogic provided classes. All the required
configuration xmls (jBPM, hibernate, mail and logging) can be bundled as jar and placed in
above mentioned jBPM core library.
h2. Library Creation
*jBPM Configuration Library*
Create a Jar with following files and name it, *jbpm-cfg.jar*
1. jbpm.cfg.xml
2. jbpm.hibernate.cfg.xml
3. jbpm.mail.properties
4. logging.properties
All the above mentioned files are attached with this article. To set the respective values
please refer to jBPM developer handbook (jBPM in J2EE environment) or user guide
documentation (
http://docs.jboss.com/jbpm/v3/userguide/deployment.html).
*jBPM Core Shared Library Creation*
Create an EAR project in Eclipse named as “jBPMCoreLibrary”. Add following jars to
APP-INF/lib directory. You will find all the jars in { jbpm.home }/lib directory
1. activation.jar
2. antlr.jar
3. antlr-runtime.jar
4. bsh.jar
5. cglib.jar
6. commons-collections.jar
7. commons-logging.jar
8. dom4j.jar
9. drools-api.jar
10. drools-core.jar
11. drools-compiler.jar
12. freemarker.jar
13. gwt-console-rpc.jar
14. gwt-console-server-integration.jar
15. hibernate-core.jar
16. janino.jar
17. javassist.jar
18. jaxb-api.jar
19. jaxb-impl.jar
20. jbpm.jar
21. jbpm-console-form-plugin.jar
22. jbpm-console-integration.jar
23. jbpm-console-graphView-plugin.jar
24. joda-time.jar
25. jsr173_1.0_api.jar
26. jta.jar
27. juel-api.jar
28. juel-engine.jar
29. juel-impl.jar
30. livetribe-jsr223.jar
31. log4j.jar
32. mail.jar
33. mvel2.jar
34. slf4j-api.jar
35. slf4j-jdk14.jar
36. *jbpm-cfg.jar (Created Above)*
Create one dynamic web project, “jBPMCoreLibraryWeb” and add it to the above created EAR
project. +This is to resolve the error in EAR project, “A Java EE Enterprise Application
must contain one or more modules in application.xml”+
++
Once you are done with above EAR creation edit the “weblogic-application.xml” and add
following lines to it inside </wls:weblogic-application> element. It is in
“META-INF” directory of the EAR project.
<wls:prefer-application-packages>
<wls:package-name>org.mozilla.javascript.*</wls:package-name>
<wls:package-name>org.mozilla.classfile.*</wls:package-name>
</wls:prefer-application-packages>
This is to avoid the js.jar conflict. Please refer to this link for more details.
http://wiki.eclipse.org/BIRT/FAQ/Deployment#Q:_How_do_I_install_BIRT_in_W...
**
*BIRT Shared Library*
Similarly we need to create the BIRT shared library. Create an EAR project for the same
and name it** as, “jBPMBIRTLibrary”.
Add following jars to APP-INF/lib directory of that EAR project.
1. chartengineapi.jar
2. com.ibm.icu_3.8.1.v20080530.jar
3. commons-cli-1.0.jar
4. coreapi.jar
5. crosstabcoreapi.jar
6. dataadapterapi.jar
7. dataaggregationapi.jar
8. dataextraction.jar
9. dteapi.jar
10. engineapi.jar
11. flute.jar
12. js.jar
13. modelapi.jar
14. modelodaapi.jar
15. odadesignapi.jar
16. org.apache.commons.codec_1.3.0.v20080530-1600.jar
17. org.eclipse.emf.common_2.4.0.v200902171115.jar
18. org.eclipse.emf.ecore.xmi_2.4.1.v200902171115.jar
19. org.eclipse.emf.ecore_2.4.2.v200902171115.jar
20. org.w3c.css.sac_1.3.0.v200805290154.jar
21. scriptapi.jar
You will find all the jars in ReportEngine/lib directory. This is the extracted directory
of “report-engine.zip” and can be found in { jbpm.home }/lib directory.
Create one dynamic web project, “jBPMBIRTLibraryWeb” and add it to the above created EAR
project. +This is to resolve the error in EAR project, “A Java EE Enterprise Application
must contain one or more modules in application.xml”+
++
Once you are done with above EAR creation edit the “weblogic-application.xml” and add
following lines to it inside </wls:weblogic-application> element. It is in
“META-INF” directory of the EAR project.
<wls:prefer-application-packages>
<wls:package-name>org.mozilla.javascript.*</wls:package-name>
<wls:package-name>org.mozilla.classfile.*</wls:package-name>
</wls:prefer-application-packages>
h2. BIRT Installation
Create a directory named “serverDirForBirt” inside the Weblogic domain directory. Create
one more directory named “birt” inside it.
Now unzip the {jbpm.home }/lib/report-engine.zip into that directory. +Remove all the jars
from the unzipped ReportEngine/lib directory.+ Those jars are included in the above BIRT
Shared Library.
Unzip {jbpm.home }/lib/jbpm-console-reports.jar into the same directory.
Set “-Dorg.jbpm.report.engine.dir” java options in serverDirForBirt\birt
{Weblogic_domain_dir/bin/}setDomainEnv.cmd/sh file.
e.g.
-Dorg.jbpm.report.engine.dir=C:\bea923\user_projects\domains\Int_domain\serverDirForBirt\birt
h2. jBPM Console Application
Import “gwt-console-jbpm.war” and “gwt-console-server-jbpm.war” into eclipse. (Can be
found in {jbpm.home } /lib)
Rename them to,
gwt-console-jbpm => jbpm-console
gwt-console-server-jbpm. => gwt-console-server
Add the “weblogic.xml” in the WEB-INF directory of “gwt-console-server” project and add
the following lines to it.
<weblogic-web-app>
<security-role-assignment>
<role-name>administrator</role-name>
<principal-name>jBPMAdmin</principal-name>
</security-role-assignment>
</weblogic-web-app>
**
You can map the roles in web.xml with your principle names configured in Weblogic. Please
refer to the "Security Configuration" section of this article for more details
on roles. Here I have mapped only “administrator” role. There are two more roles “manager”
and “user”. You can map them as per your choice.
We will deploy the console WARs as part of EAR. So create a third EAR project named,
“jBPMConsoleApp”. Add above two web projects to this EAR project viz. jbpm-console and
gwt-console-server.
The console application requires some jars from jBPM core library so make them available
by adding following tags in Weblogic-application.xml of this EAR.
**
<wls:library-ref>
<wls:library-name>jBPM-Core-Library</wls:library-name>
<wls:specification-version>4.4</wls:specification-version>
<wls:exact-match>false</wls:exact-match>
</wls:library-ref>
<wls:library-ref>
<wls:library-name>jBPM-BIRT-Library</wls:library-name>
<wls:specification-version>1.0</wls:specification-version>
<wls:exact-match>false</wls:exact-match>
</wls:library-ref>
**
Once you are done with the above EAR creation edit the “weblogic-application.xml” and add
following lines to it inside </wls:weblogic-application> element. It is in
“META-INF” directory of the EAR project.
<wls:prefer-application-packages>
<wls:package-name>org.mozilla.javascript.*</wls:package-name>
<wls:package-name>org.mozilla.classfile.*</wls:package-name>
</wls:prefer-application-packages>
h2. Database Schema
Execute Mysql scripts and create the database named “jbpm4”. The scripts for mysql can be
found in, “{jbpm.home }\install\src\db\create” directory with name,
+jbpm.mysql.create.sql+.
You can load the sample users and data by using script, +example.identities.sql+ located
at,
{jbpm.home }\ install\src\demo.
*
*
**
*Start Weblogic Server....*
h2. Configurations On Weblogic
*Datasource Creation On Weblogic*
Create Mysql datasource on Weblogic with following name, jBPM DS and JNDI name, “JbpmDS”.
You can choose any data source name but JNDI name should be “JbpmDS”.
*Security Roles Configuration On Weblogic*
We have now come to the final configuration. This is the security roles configuration on
Weblogic.
Create a new “Authentication Providers” of type SQL Authenticator.
Provide following values to the given fields.
Navigation in Weblogic Console, +Home > Summary of Security Realms > myrealm >
Providers+
+
+
**
| *Field* | *Value* |
| *Name* | jBPMAuth |
| *Control Flag* | SUFFICIENT |
| *Data Source Name* | jBPM DS (Created Above) |
| *Plaintext Passwords Enabled* | True |
| *SQL Get Users Password* | SELECT PASSWORD_ FROM JBPM4_ID_USER WHERE ID_=? |
| *SQL User Exists* | SELECT ID_ FROM JBPM4_ID_USER WHERE ID_ = ? |
| *SQL List Users* | SELECT ID_ FROM JBPM4_ID_USER WHERE ID_ LIKE ? |
| *SQL List Groups* | SELECT ID_ FROM JBPM4_ID_GROUP WHERE ID_ LIKE ? |
| *SQL Group Exists* | SELECT ID_ FROM JBPM4_ID_GROUP WHERE ID_ = ? |
| *SQL Is Member* | SELECT u.ID_ FROM JBPM4_ID_MEMBERSHIP m, JBPM4_ID_USER u,
JBPM4_ID_GROUP g WHERE g.ID_ = ? AND u.ID_ = ? AND m.GROUP_ = g.DBID_ AND m.USER_ =
u.DBID_ |
| *SQL List Member Groups* | SELECT g.ID_ FROM JBPM4_ID_MEMBERSHIP m, JBPM4_ID_USER u,
JBPM4_ID_GROUP g WHERE u.ID_ = ? AND m.GROUP_ = g.DBID_ AND m.USER_ = u.DBID_ |
| *SQL Get User Description (If you check the “Descriptions Supported” box)* | SELECT
GIVENNAME_ FROM JBPM4_ID_USER WHERE ID_ = ? |
| *SQL Get Group Description (If you check the “Descriptions Supported” box)* | SELECT
TYPE_ FROM JBPM4_ID_GROUP WHERE ID_ = ? |
**
+P.S.+ +Please check the cases of table names if it does not work on Linux.+
*You need to restart the Weblogic server...*
You can verify the configuration success using following navigation. +Home > Summary
of Security Realms > myrealm > Users and Groups+
It should show something like Figure 1. These are the users inserted by
+example.identities.sql+.
+Figure 1+
https://community.jboss.org/servlet/JiveServlet/downloadImage/102-15968-1...
(
https://community.jboss.org/servlet/JiveServlet/showImage/102-15968-14-10...)
**
**
*Deploying created libraries and application*
Now we are ready to deploy the above created entities.
1. jBPMCoreLibrary.ear
2. jBPMBIRTLibrary.ear
3. jBPMConsoleApp.ear
Deploy the first two EARs, jBPMCoreLibrary.ear and jBPMBIRTLibrary.ear as library on
Weblogic. The third should be deployed as application. Your deployments will look as shown
in below diagram.
https://community.jboss.org/servlet/JiveServlet/downloadImage/102-15968-1...
(
https://community.jboss.org/servlet/JiveServlet/showImage/102-15968-14-10...)
Try
http://localhost:7001/jbpm-console/app.html and start building powerful applications
in jBPM which can run on Weblogic.
*For the applications running on that server to use the jBPM refer to above
jBPMCoreLibrary from that application.*
**
**
*Reference Links:*
http://community.jboss.org/thread/152527 (
https://community.jboss.org/thread/152527)
http://community.jboss.org/thread/153405 (
https://community.jboss.org/thread/153405)
http://community.jboss.org/thread/152589 (
https://community.jboss.org/thread/152589)
You can use this URL to access the console app,
http://localhost:8080/jbpm-console
You have to write the client code to create jbpm process instance or tasks or add users.
See if this helps,
http://docs.jboss.org/jbpm/v5.4/userguide/ch.quickstarts.html
**
--------------------------------------------------------------
Comment by going to Community
[
https://community.jboss.org/docs/DOC-15968]
Create a new document in jBPM at Community
[
https://community.jboss.org/choose-container!input.jspa?contentType=102&a...]