在 kettle 里如何使用 JNDI 方式连接数据源

转自:http://pdi.itpub.net/post/37422/484561

 

使用 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 转换已经成功执行。

 

 

在Ketttle本身配置数据源: http://cai555.iteye.com/blog/623620

你可能感兴趣的:(tomcat,mysql,jsp,jdbc,SQL Server)