如何在kettle里使用JNDI的方式连接到数据库

2010年12月23日 | 标签:
热度:

最近出差海南,基本上没怎么更新了.

今天上一个有关连接数据源的配置方面的。

使用 JNDI 的好处就是便于部署和数据源的变更,kettle 也提供了 JNDI 方式连接。
本文以 tomcat 和 mysql 为例,说明 kettle 如何使用 JNDI 方式连接数据源
1. 先将你的应用部署到 webapps 下,如 webapps/example。
2. 在 ./webapps/example/WEB-INF/lib 目录下,确保要有 kettle-core.jar, kettle-engine.jar 和其他 kettle 运行时依赖的 jar 文件。
3. 将 mysql 的 jdbc 驱动拷贝到tomcat 的 ./lib 目录下,同时在 ./conf/server.xml 文件中配置 JNDI:
<Context path=”/example” docBase=”example”
debug=”5″ reloadable=”true” crossContext=”true”>
<Resource name=”jdbc/TestDB” auth=”Container” type=”javax.sql.DataSource”
maxActive=”100″ maxIdle=”30″ maxWait=”10000″
username=”root” password=”1″ driverClassName=”com.mysql.jdbc.Driver”
url=”jdbc:mysql://localhost:3306/test?autoReconnect=true”/>
</Context>
4. 使用 kettle 的图形界面 spoon 创建一个转换,在创建数据库连接时,要使用 JNDI 连接方式,JNDI 名称是 TestDB。 创建完转换后将转换保存为 ktr 文件如:c:/test.ktr
5. 创建 kettle-jndi-test.jsp 文件,文件内容如下:
<%@ page contentType=”text/html”%>
<%@ page import=”org.pentaho.di.trans.*” %>
<%@ page import=”org.apache.commons.vfs.*” %>
<%

try{
StepLoader.init();
}catch (Exception ex)
{
ex.printStackTrace();
}
TransMeta meta = new TransMeta (“c:/test.ktr”);
Trans trans = new Trans(meta);
trans.execute(null);
trans.waitUntilFinished();
trans.endProcessing(“end”);
%>
6. 启动 tomcat, 浏览器中输入URL: http://localhost:8080/example/kettle-jndi-test.jsp 可以发现 kettle 转换已经成功执行。

feihu分享到:

          

相关博文

目前还没有任何评论.
您必须在 登录 后才能发布评论.