帆软报表FineReport中数据连接之Tomcat配置JNDI连接
1. 问题描述
在帆软报表FineReport中,通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下:
2. 实现步骤
· 使用版本及环境
下面以Windows XP系统,tomcat 5.5,jdk 1.6,连接SQLserver2000数据库进行JNDI连接说明,其他版本数据库步骤基本相同。
2.1 拷贝驱动
将连接数据库的JDBC驱动拷贝到Tomcat安装目录下的%Tomcat_HOME%\common\lib下。这边使用SQLserver2000数据库,所以把报表安装%FineReport_8.0%\WebReport\WEB-INF\lib目录下的sqljdbc.jar驱动包,拷贝到Tomcat服务器目录下。
2.2 Tomcat服务器定义JNDI
· 方法一:通过context.xml配置文件定义JNDI
可在%Tomcat_HOME%\conf\context.xml配置文件中定义JNDI,在最后一行Context上面添加定义SQLserver2000数据库连接JNDI代码如下:
1. <Resource name="FRTOMCATJNDI" auth="Container" type="javax.sql.DataSource" username="sa" password="sa" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxIdle="30" maxWait="10000" maxActive="100" url="jdbc:sqlserver://192.168.100.107:1433;databaseName=FRTest" />
name="FRTOMCATJNDI":则是JNDI的名字;username="sa" password="sa" :是数据库用户名和密码;driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver":是数据库驱动器;url="jdbc:sqlserver://192.168.100.107:1433;databaseName=FRTest":连接数据库的url。
· 方法二:通过Admin模块定义JNDI
进入tomcat的Admin模块,并选择中左边的datasource结点,网页右边就列出Tomcat中所有的可用全局JDNI连接,如果没有JNDI连接则可以到下一步看如何进行设置,如下图:
注意:从Tomcat5.5开始core包或者windows的安装包中将没有admin模块,需要用户去Tomcat官方网站上下载,所以建议大家直接使用context.xml配置文件定义JNDI。
点击右上角Data Source Actions下拉框里面选择Create New Data Source,新建数据连接如下编辑:
保存设置和提交修改Tomcat的JNDI配置。
然后在%Tomcat_HOME%\conf\context.xml配置文件里面添加调用上面定义jndi连接,在最后一行Context上面添加代码如下:
1. <ResourceLink global="FRTOMCATJNDI" name="FRTOMCATJNDI" type="javax.sql.DataSource"/>
如上两种方法都可以定义jndi连接。
2.3 修改报表工程下web.xml配置文件
部署工程时,注意在%Tomcat 5.5%\webapps\jndi\WEB-INF\web.xml配置文件中servlet节点上添加如下内容:
1. <resource-ref>
2. <description>Resource</description>
3. <res-ref-name>FRTOMCATJNDI</res-ref-name>
4. <res-type>com.microsoft.sqlserver.jdbc.SQLServerDriver</res-type>
5. <res-auth>Container</res-auth>
6. </resource-ref>
2.4 报表连接JNDI
注意:由于Tomcat自身的限制,JNDI只能在Serverlet或者JSP访问,所以设计报表时先用JDBC连接,发布时再换成JNDI。
Tomcat服务器报表连接JNDI只需要输入JNDI的名字即可连接成功,如下图:
2.5 预览报表
重新启动Tomcat服务器,浏览报表,能访问到报表内容,则JNDI配置成功了。
帆软报表FineReport中数据连接之Tomcat配置JNDI连接的更多相关文章
- 帆软报表FineReport中数据连接之Websphere配置JNDI连接
以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...
- 帆软报表FineReport中数据连接的JDBC连接池属性问题
连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...
- 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...
- 帆软报表FineReport中数据连接之Jboss配置JNDI连接
使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...
- 帆软报表FineReport SQLServer数据库连接失败常见解决方案
1. 问题描述 帆软报表FineReport客户端连接SQLServer(2000.2005等),常常会出现如下错误:com.microsoft.sqlserver.jdbc.SQLServerExc ...
- 帆软报表FineReport数据连接中游标问题解决方案汇总
1. 概念 在数据库中, 游标是一个十分重要的概念.游标是一种能从包括多条数据记录的结果集中,每次提取一条记录的机制. 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,往往是一个含有多个记 ...
- 帆软报表FineReport数据库连接编码转换
1. 问题描述 数据库会以某种编码方式保存与读取数据,FineReport解析时默认使用GBK字符集,若数据库端编码与设计器端编码不一致时,就会导致中文及特殊字符的乱码. FineReport在定义数 ...
- 帆软报表(FineReport)实现跨数据源父子查询(2阶段查询)
问题描述: 在报表中需要查询多个系统多个数据源,且有一个数据源的入参是另一个数据源的返回值.所以当用户点击查询到展现报表数据这个过程中,需要先做父查询,查询出的结果在作为子查询. 实现方案: 方案一: ...
- 帆软报表(finereport)单元格中各颜色标识的含义
帆软报表(finereport)单元格中,可根据单元格角标的颜色判断单元格进行的操作 过滤:单元格左下角黄色三角形 条件属性:单元格左上角红色三角形. 控件:单元格右侧中间的各种矩形. 左父格:单 ...
随机推荐
- 基于STM32Cube的DAC数模转化
1. STM32Cube配置 1.1 DAC配置 1.2 TIM6 配置 1.3 利用Cube产生工程程序,MDK打开软件 在主循环上添加语句: HAL_TIM_Base_S ...
- Nancy之Cache的简单使用
一.前言 说起缓存,或许大家都不陌生,甚至是天天都在用!当然缓存也被分的越来越细,页面缓存.数据缓存.文件缓存等等. 其实呢,我个人觉得,主要还是两大类:数据的缓存和页面的缓存.数据缓存的话就包括所有 ...
- Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://localhost:9001/api/size/get. (Reason: CORS header 'Access-Control-Allow-Origin' missing).
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http:/ ...
- C#不对称加密
对称加密的缺点是双方使用相同的密钥和IV进行加密.解密.由于接收方必须知道密钥和IV才能解密数据,因此发送方需要先将密钥和IV传递给接收方.这就 有一个问题,如果攻击者截获了密钥和IV,也就等于知道了 ...
- Objective-c的@property(atomic,nonatomic,readonly,readwrite,assign,retain,copy,getter,setter) 属性特性
assign:指定setter方法用简单的赋值,这是默认操作.你可以对标量类型(如int)使用这个属性.你可以想象一个float,它不是一个对象,所以它不能retain.copy. retain:指定 ...
- 最好的Angular2表格控件
现在市面上有大量的JavaScript数据表格控件,包括开源的第三方的和自产自销的.可以说Wijmo的Flexgrid是目前适应Angular 2的最好的表格控件. Angular 2数据表格基本要求 ...
- 增加线程异步发送消息的方法二(Runnable)
//获取当前时间:毫秒 long a = System.currentTimeMillis(); System.out.println("a :" + a); try { //更改 ...
- 关于依赖注入IOC/DI的感想
之前一直不明白依赖注入有什么好处,甚至觉得它是鸡肋,现在想想,当时真是可笑. 这个想法正如同说接口是没有用处一样. 当整个项目非常庞大,各个方法之间的调用非常复杂,那么,可以想象一下,假设说没有任何的 ...
- 悟透JavaScript(理解JS面向对象的好文章)
引子 编程世界里只存在两种基本元素,一个是数据,一个是代码.编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力. 数据天生就是文静的,总想保持自己固有的本色:而代码却天生活泼,总想改变这个 ...
- [Cordova] Plugin里使用iOS Framework
[Cordova] Plugin里使用iOS Framework 前言 开发Cordova Plugin的时候,在Native Code里使用第三方Library,除了可以加速项目的时程.也避免了重复 ...