使用 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:

debug="5" reloadable="true"

crossContext="true">

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"/>

4. 使用 kettle 的图形界面 spoon 创建一个转换,在创建数据库连接时,要使用 JNDI 连接方式,JNDI 名称是

TestDB。 创建完转换后将转换保存为 ktr 文件如:c:/test.ktr

5. 创建 kettle-jndi-test.jsp 文件,文件内容如下:

contentType="text/html"%>

%>

%>

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");

%>

Logo

一站式 AI 云服务平台

更多推荐