您的位置:首页 > 运维架构 > Tomcat

安装ActiveBPEL引擎(tomcat5.5+mysql5.1+ActiveBPEL5.0.2)

2017-03-23 17:03 323 查看
因为要学习服务计算,想搭建个环境做服务组合,选择了开源的ActiveBPEL。开源的东西果然不是白白免费的,光版本控制的问题就足够让人崩溃,用了一天半的时间才配好。其中最为难缠的是JNDI数据源配置,涉及到DBCP、JDBC和Tomcat,我更是在版本上吃足了苦头,好在终于守得云开见月明,引擎终于跑起来了。

 

一、版本问题

     ActiveBPEL引擎选择的是5.0.2,需要Servlet容器支持,这里选择的是Tomcat。只有Tomcat5.5.27及以下的版本才可以,高一点版本与ActiveBPEL不兼容。

     ActiveBPEL的持久化需要JNDI数据源。在Tomcat中配置JNDI最好的参考资料是Tomcat的DataSource和Resources HOWTO文档。我的Tomcat的JRE是JDK1.5,而目前的DBCP有1.3和1.4两个版本,分别与JDBC3和JDBC4兼容,同时分别兼容JDK1.5及以下和JDK1.6。因为JDK是1.5,所以选了较低的版本。

二、安装ActiveBPEL

    最好的参考文档自然是安装包自带的文档,位于根目录/doc下的install_engine.txt,E文的,不过很容易读懂。

    第一步,安装Tomcat并配置CATALINA_HOME环境变量。

    第二步,命令行下执行install.bat(windows)。 执行后在Tomcat根目录下生成bpr目录和webapps下四个部署文件,bpr下是ActiveBPEL的配置文件。

    随后,启动Tomcat和关闭Tomcat会自动启动和关闭ActiveBPEL引擎。

    Tomcat启动后,浏览器中键入http://localhost:8080/BpelAdmin/即看到管理界面,表示安装成功,引擎的状态为Running。这时HOME页中的Description表示采用的是In_Memory模式。

三、ActiveBPEL的持久化

    参考文档是doc目录下的persistence_setup.txt文档。

    第一步建数据库,采用mysql5.1。执行安装包目录下dist/sql/activebpel/ddl/ActiveBPEL-MySQL.sql建立activebpel数据库。Windows下默认不区分大小写。我在mysql命令行下用source命令完成。

    第二步在Tomcat中配置JNDI数据源。可能因为DBCP和JDBC版本的问题,开始按照参考文档,在Tomcat的Administration Web Application中配置JNDI数据源没有成功,后来直接在Tomcat下写的配置文件,没有再去验证Administration Web Application能否成功。步骤如下:

    1. 配置上下文内容如下。内容要保存在xml文件中,我试过两种方式。一种在CATALINA_HOME//conf/Catalina/localhost下的active-bpel.xml,另一种是Web Application的META-INF下的context.xml。推荐第二种,可以容易得移植到其他Web应用服务器中。

<?xml version="1.0" encoding="UTF-8"?>

<Context>

  <Resource

    name="jdbc/ActiveBPELDB"

    auth="Container"

    type="javax.sql.DataSource"

    driverClassName="com.mysql.jdbc.Driver"

    username="root"

    password="123"

    maxIdle="4"

    maxWait="10000"    

    url="jdbc:mysql://localhost:3306/ActiveBPEL?autoReconnect=true"

    maxActive="10"/>

</Context>

    2. 设置对上下文中配置的资源的引用。通常情况下在Web Application的web.xml中配置引用如下:

<resource-ref>

 <description>activebpel</description>

   <res-ref-name>jdbc/ActiveBPELDB</res-ref-name>

   <res-type>javax.sql.DataSource</res-type>

   <res-auth>Container</res-auth>

 </resource-ref>

    ActiveBPEL略有区别。web.xml中不需要配置,要把dist/conf下的aeEngineConfig-Persisitent.xml拷贝到Tomcat目录下的bpr目录中,并删掉原来的aeEngineConfig.xml,将拷贝过来的文件改名为aeEngineConfig.xml。打开aeEngineConfig.xml,修改<entry name="DatabaseType" value="mysql" />。

    然后重启Tomcat,如果没有问题,http://localhost:8080/BpelAdmin/页面的引擎的状态为Running,这时HOME页中的Description表示采用的是Persistent模式。

四、检测JNDI数据源

    如果配置出错,很可能是JNDI数据源出错,这里给出个检验的小例子。可以在myeclipse建个Web Project,访问数据源检验。index.jsp如下:

<%@ page language="Java" import="java.util.*" pageEncoding="utf-8"%>

<%@ page import="java.sql.*" %>

<%@ page import="javax.sql.*" %>

<%@ page import="javax.naming.*" %>

<html>

  <head>

      

    <title>JNDI Test</title>

 

  </head>

  

  <body>

 <% 

  Context initCtx = new InitialContext();

 Context envCtx = (Context) initCtx.lookup("java:comp/env");

 DataSource ds = (DataSource)envCtx.lookup("jdbc/ActiveBPELDB");

 Connection con=ds.getConnection(); 

 Statement stmt=con.createStatement();

 ResultSet rs=stmt.executeQuery("select* from aemetainfo");

 %>

 

    <h2>Results</h2>

  

<table border="1" cellspacing="0" cellpadding="0" align="center">

<tr>

   <th>property</th>

   <th>value</th>

</tr>

<%while(rs.next()){%>

<tr>

   <td><%=rs.getString(1)%></td>

   <td><%=rs.getString(2)%></td>

</tr>

<%}%>

</table>

 <%con.close(); %> 

    

  </body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: