在Pentaho报表设计器(PRD)中,我想通过引用在www.example.com文件中创建的JNDI,使用Groovy脚本(或EMCAScript脚本)连接到我的数据源default.properties。因此,我将创建一个包含JNDI名称的多值列表参数,并根据参数中选择的JNDI连接到数据源。
脚本:
import groovy.sql.Sql
import javax.naming.InitialContext
import javax.sql.DataSource
class SqlClient {
InitialContext context = new InitialContext()
DataSource dataSource = context.lookup("OLTP") as DataSource
def sql = new Sql(dataSource)
sql.execute("SELECT * FROM Person.User_JNDI")
TypedTableModel model = new TypedTableModel();
while(sql.next())
model.addRow(new Object [] {rs.getString(1)});
c.close();
return model;
}
我收到以下错误:原因:org.apache.bsf.BSFException:Groovy的例外:org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败:表达式:11:意外令牌:sql @ line 11,column 5. sql.execute(“SELECT * FROM Person.User_JNDI”)
此外,PRD期望脚本返回一个模型,可能与TypedtableModel类有关。
谁能给予我一个Groovy脚本的例子?
2条答案
按热度按时间wfveoks01#
假设您已经按照here的格式填充了
default.properties
,您应该能够使用以下内容访问数据源:使用Sql示例
egdjgwm82#
我可以通过以下方式实现这一点: