




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
润乾报表在j2ee下的部署,培训安排,时间:AM 9:3012:00 PM 13:30 16:30 方式:讲解+练习,培训目标,了解润乾报表WEB架构; 熟悉润乾报表WEB报表展现机制; 学会在J2EE WEB服务器上部署润乾报表; Tomcat Weblogic WebSphere 学会在J2EE WEB应用中发布报表; 润乾报表缓存配置,培训内容,一、了解润乾报表WEB架构 二、熟悉部署流程和步骤 三、部署润乾报表 四、发布报表以及TAG标签的应用 五、润乾报表缓存配置 六、常见部署发布问题,一、润乾报表的WEB架构,润乾报表总体结构 润乾报表-WEB应用结构 润乾报表-计算流程,润乾报表总体结构,报表是应用的 一部分!,润乾报表-WEB应用结构,润乾报表设计器,润乾报表-计算流程,浏览器,JSP 文件,报表引擎,TAG,API,Report,Engine,报表模板,数据文件,Context,config,数据源配置 授权配置 日志配置 语义层配置 缓存配置 ,Html Tag Param tag,二、部署流程和步骤,不同服务器配置方式不一样,润乾报表核心配置文件reportConfig.xml,2.1、安装J2EE WEB服务器,Tomcat 拷贝安装目录 Weblogic 安装 创建domain WebSphere 安装,2.1.1准备JDBC驱动,Tomcat 拷贝JDBC驱动到common/lib Weblogic 修改cmd文件添加jdbc到classpath Websphere 拷贝文件AppServerlib,2.1.2创建数据库连接池,Tomcat 修改配置文件 Weblogic 控制台 Webspher 控制台,三、部署润乾报表,安装服务器准备环境 创建发布润乾报表应用,3.1创建应用,手动创建新应用 创建目录 拷贝文件 手工修改配置文件 导出开发环境中的应用 发布应用 选择授权文件 选择服务器 配置数据源,3.1.1应用目录结构,应用目录 WEB-INF classes lib web.xml,练习:创建应用,创建名为runqian的应用 必须含有WEB-INF目录 WEB-INF classes lib,3.2复制报表引擎,程序包 七个jar程序包 配置文件 四个配置文件,练习:复制润乾报表引擎,复制报表引擎 七个jar包 四个配置文件 操作: 七个jar包拷贝到.runqianWEB-INFlib 四个配置文件拷贝到runqianWEB-INF,3.3复制报表打印程序,程序包 runqianReport4Applet.jar 第三方插件 j2re-1_4_1-windows-i586-i.exe j2re-1_4_2_08-linux-i586.rpm 复制位置 应用根目录,练习:复制打印程序,程序包 runqianReport4Applet.jar widonws :j2re-1_4_1-windows-i586-i.exe Linux:j2re-1_4_2_08-linux-i586.rpm,3.4相关的配置文件,1. reportConfig.xml配置 2. runqianReportLperties日志配置 3. web.xml配置,3.4.1 报表引擎基本配置, license Server.lic 授权文件 reportFileHome /reportFiles 报表模板位置 semanticsFile /WEB-INF/demo.xml 语义层文件 JNDIPrefix java:comp/env JNDI前缀 dataSource hsql,sqlsvr,1,iso8859-1,GBK,1;exercise,sqlsvr,1,iso8859-1,GBK,0 ,数据源配置 数据源的JNDI名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,3.4.2各服务器部署差异,JNDI前缀不同,3.4.3报表引擎缓存配置, cachedParamsTimeout 120 参数在缓存中保存的时间 cachedReportDir c:runqiancached 报表缓存的文件夹 cachedIdPrefix A 报表缓存的前缀 cachedReportTimeout 120 报表缓存保存的时间 cachedToDiskOnly no缓存时是否只保存在硬盘上 ,3.4.4报表引擎并发配置, maxConcurrentForReport 9999 同时计算的报表的个数 maxWaitForReport 9999 等待计算的报表的个数 maxWaitTimeForReport 9999 等待计算的最大时间 ,3.4.5配置润乾日志,/日志级别可为OFF,ERROR,WARN,INFO,DEBUG,ALL, 优先级依次降低,若为OFF则不输出任何 /日志信息;若为INFO,则只输出ERROR,WARN,INFO等级别的信息,依次类推。 log4j.logger.runqianReportLogger=DEBUG,LOG1,LOG2 日志级别 /输出日志到系统控制台 log4j.appender.LOG1=org.apache.log4j.ConsoleAppender log4j.appender.LOG1.layout=org.apache.log4j.PatternLayout log4j.appender.LOG1.layout.ConversionPattern=%dyyyy-MM-dd HH:mm:ss %c : %-5p %x - %m%n /输出日志到指定文件 log4j.appender.LOG2=org.apache.log4j.RollingFileAppender /可以指定LOG2.File的全路径, 若未指明,则为相对WEB服务器启动文件的路径 log4j.appender.LOG2.File=runqianReport.log 日志文件,3.4.6Web.xml配置信息, reportServlet com.runqian.report4.view.ReportServlet configFile /WEB-INF/reportConfig.xml 2 reportServlet /reportServlet /WEB-INF/runqianReport4.tld /WEB-INF/runqianReport4.tld ,3.5优化配置JVM,java堆大小 -Xms128m -Xmx300m 报表并发数控制 数据库连接池连接个数配置 webserver的连接数限制,Websphere中: 服务器-应用程序服务器-server-进程定义-java虚拟机,创建好的应用结构,Web.xml-应用配置文件 reportConfig.xml-报表配置文件 runqianReportLperties-日志 sales.xml-语义层定义文件,导出方式生成应用,向导式发布报表应用,3.7Jar命令打war包,开始 运行 cmd 进入应用所在的目录 jar 查看帮助 jar cvf runqian.war *.*,练习:把应用打成war,用jar命令把配置好的应用打成war包 注意事项: 不同应用服务器中注意修改jndi名称 应用中尽量不要有中文名称 尽量删除web.xml的中文注释,发布应用到服务器,Tomcat 修改配置文件 Weblogic 控制台 Webspher 控制台 只能发布war文件,发布过程密切关注服务器是否有异常信息抛出!,测试应用,测试JSP 确定应用正常 测试报表 测试报表授权配置正确 确定数据源配置正确 确定语义层配置正确,四、TAG标签应用,标签的分类 html报表 参数传递 param参数表单 行式报表 异常捕获,4.1Tag标签的使用,引入Tag定义 使用Tag对象 ,4.2Tag:html报表,目的 在网页上展现报表 前提 报表已经设计出来,并且存放在应用可以访问的路径中 实现机理 直接解析报表模板计算报表 通过报表对象展现报表 提供打印、导入、导出等功能菜单的生成 可设置报表网页上展现的格式如:高宽、固定表头等,功能菜单,功能 翻页 打印 导出 提交 位置 顶部 尾部 同时,练习:简单使用,写一个jsp通过Tag展现报表 通过报表模板直接展现报表 例子 ,4.3参数传递,写一个jsp通过Tag展现报表 通过报表模板直接展现报表 例子 注:参数之间用;隔开,4.3.1动态参数传递,如果参数值或宏值是变化的,那么应该先在JSP代码中将参数串拼好,再传入Tag中,如下所示: “ /,4.3.2隐藏参数传递,设置hiddenParams属性: “ /,WEB中一般有一些全局的变量,如登录用户名、用户角色等,而在报表中可能会用到这些作为参数值,那么在用参数表单时怎么将这些值传进去呢?,4.4关联查询,关联查询,同一Jsp中实现关联查询 1.定义参数表单报表、查询结果报表 2.写一个Jsp嵌入param与html标签,注意:可通过属性传递隐藏参数到参数报表中!,4.5行式填报式报表的属性,4.6异常处理,普通报表计算异常处理 exceptionPage -当Tag标签在计算报表遇到错误的时候可以通过该属性设置异常跳转页面 填报表数据填报异常 inputExceptionPage -当填报表数据填报遇到异常的时候可以通过该属性捕获异常 异常捕获 Tag标签将异常以exception为关键字放在request中可以按如下方式得到: 例: Exception e = ( Exception ) request.getAttribute( “exception“ );,Tag小结,常用Tag标签 Html Param Tag属性 报表定义 显示风格设置 高级属性 数据库连接 填报处理类,五:润乾报表缓存配置,缓存机制 并发机制 表达式预解析 推荐配置方案,缓存机制,原理 系统缓存配置 报表调用配置 缓存性能对比,缓存机制原理,缓存,用户一,用户二,发起Internet 访问请求,未发现需要 访问的内容,从应用服务器下载数据,将数据存储到缓存中,发起Internet 访问请求,发现数据,从缓存下载,缓存控制原理,按照缓存载体分类,系统缓存配置缓存启动开关,是否启用缓存管理 打开润乾web应用根目录下的WEB-INF/reportConfig.xml文件,找到或增加如下属性: alwaysReloadDefine yes Value取值 Yes-关闭缓存,每次加载报表模板,并取数计算 No 开启缓存,报表模板缓存。,系统缓存配置,配置文件为:位于润乾web应用根目录下的WEB-INF/reportConfig.xml文件 本文件可配置的属性包括: cachedParamsTimeout:表示提交给报表的参数在缓存中保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。 cachedReportDir:表示报表缓存的文件夹,如在unix系统中,用户应对此文件夹有写的权限,并根据报表的数量和访问量的大小以及缓存超时的时间,分配一个合理的空间大小。如果不设此参数或设置错误,则采用JDK默认的临时文件夹。 cachedIdPrefix:表示报表缓存的前缀。cachedIdPrefix生成报表缓存号时的前缀串,只有在集群环境中并且多台服务器共享一个报表缓存目录时才需要设置。 cachedReportTimeout:表示报表缓存保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。此值应根据实际内存大小、缓存文件夹空间大小来调节,一般在60180分钟之间。,报表调用配置,如何控制单个报表是否需要缓存? Tag属性 useCache 显示此报表时是否从缓存系统中取已经计算好的报表 timeout 从缓存系统中取多少分钟内产生的报表,如果没有此时间内的,则产生一个新报表 。,注意:缓存起作用,必须是 alwaysReloadDefine值为no,缓存性能对比,第一次计算报表,第二次访问报表,第一次计算报表,第二次访问报表,没使用缓存,使用缓存,并发机制,原理 并发配置,并发机制原理,双管齐下并发机制,静态并发控制机 最大报表运算并发数量 最大报表访问等待数量 报表访问最长等待时间,动态并发控制机 以单元格作为并发控制 的计量单位,充分利用 硬件资源。,动态并发机制的优势,动态并发的优点 提高系统资源利用率 增加系统并发访问能力 加快报表访问速度 动态判断报表大小,静态并发 允许的报表数量,问题: 假如报表的数据量不大,静态并发控制就可以让系统出色的运行,但是,一旦单张报表的数据量变大,就会引发新的问题:并发的几张大报表在计算时,由于运算的优先级相同,每一个运算进程都在向系统要求更多的资源,即便系统没有剩余资源可供分配,各运算进程也不会自动释放自己占用的部分,这样的死锁情况往往导致应用服务长时间无反应甚至是应用服务器崩溃。,大数据量报表引发问题,格子数控制,根据系统资源量,算出允许报表 服务器同时计算的最大格子数,系统并发配置,配置文件为:位于润乾web应用根目录下的WEB-INF/reportConfig.xml文件 可配置项包括: maxConcurrentForReport:表示报表WEB应用中服务器可以同时计算的报表的个数。 maxWaitForReport:表示报表WEB应用中服务器可以等待计算的报表的个数,对于溢出的报表个数,或者超时的报表,系统自动在队列中清除。 maxWaitTimeForReport:表示报表等待计算的最大时间,以秒为单位。 maxCellNum:动态并发配置的主要指标。 注意:配置数据库允许的最大连接数和应用服务器的连接池个数时,必须大于 报表的并发数+ 报表的等待数,表达式预解析,数据集字段,单元格引用,常量,(123*2/6+3)*A1+34.5*2 在报表计算时解析为: 44*A1+69,什么是表达式预解析? 在报表扩展前,对表达式进行解析,把和扩展无关的部分先计算出来,把和扩展无关的变量定位先行定位,从而避免扩展后大量的重复运算。,ds1.fieldname 解析为: ds1.#1,性能管理的推荐配置,访问量高的配置方案 以JVM内存设置为512M的服务器为例子,假设并发量为1000,用户请求的报表为200单元格(差不多为一张A4纸的报表),不管是图片还是文本,我们以一个单元格平均为1.2K计算,可以得出报表系统的内存使用量为: 1000*200*1.2k/1024k=234.375M 根据以上计算,我们在实际生产系统中,我们建议: cachedReportTimeout设置成60分钟,用户数据量大的情况下,减少报表缓存时间。 alwaysReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。同时在tag标签中把useCache设置为yes,而timeout可以根据自己的实时要求进行设置,如果数据一天都不会变的话,建议设置为-1 。 maxConcurrentForReport为1000,这是并发量 maxWaitForReport设置为2000 maxWaitTimeForReport设置为10秒钟,10秒内得不到响应,用户需要再次请求。 maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*50页=10000格,性能管理的推荐配置2,数据量大的配置方案 以JVM内存设置为1G的服务器为例子,假设并发量最大为5,用户请求的报表为200单元格*1000页(数据量可能上千万,但通过条件查询,取其中几千条记录),一般大数据量都没有图片,所以以每一个单元格为0.5k计算,那么在最大并发量下,得出报表系统内存使用量为: 200*1000*5*0.5/1024K=488.28125M 根据以上计算,我们在实际生产系统中,我们建议: cachedReportTimeout设置成180分钟,用户数据量大的情况下,增大报表缓存时间。 alwaysReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。同时在tag标签中把useCache设置为yes,而timeout可以根据自己的实时要求进行设置,如果数据一天都不会变的话,建议设置为-1 。 maxConcurrentForReport为5,这是并发量 maxWaitForReport设置为10 maxWaitTimeForReport设置为300秒钟,6分钟内得不到响应,用户需要再次请求。 maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*500页=100000格,性能管理的推荐配置3,在开发模式下的配置 这时我们可以设置reportConfig.xml中的alwaysReloadDefine为yes,如下所示: alwaysReloadDefine yes ,六、常见部署发布问题,1.不同版本tomcat的数据源如何配置 2.中文乱码问题 3.非windows系统下的中文问题 4.授权文件问题,6.1 Tomcat5.0 配置应用, driverClassName com.newatlanta.jturbo.driver.Driver url jdbc:JTurbo://pubs/charset=GBK username sa password sa ,6.1.1Tomcat5.5&6.0 配置应用,Tomcat安装目录 confCatalinalocalhost 新建xml文件 ,6.2Tomcat中文乱码,Tomcat_HOME/conf/server.xml ,6.3数据库的连接问题,常见现象 原因与解决方法,6.3.1数据库连接不上现象,: 产生数据工厂: com.runqian.report4.dataset.SQLDataSetFactory 失败错误来源:: Cannot create PoolableConnectionFactory (socket creation error) 错误来源:Cannot create PoolableConnectionFactory (socket creation error),6.3.2数据库连接不上解决方法,1、连接池配置错误(driverurluserpassword等写法有误) 2、报表模板的数据集配置中的数据源名称、reportConfig.xml中的datasource名称、及应用服务器的jndi名称,三者存在不一致的现象 3、reportConfig.xml中数据源没有配置 4、jdbc包缺失、版本不正确,或者没有正确放在应用服务器的java类路径下,6.3.3字符集配置错误,错误信息 报表中所有从数据库中取出的中文乱码 解决方法 将reportConfig.xml中dataSource对应的值中第4个选项由GBK改为ISO-8859-1或由ISO-8859-1改为GBK即可 dataSource ora9i,ORACLE,1,GBK,GBK,0; 数据源的JNDI名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,6.4中文问题,现象:如果含有带斜线的单元格或者统计图的报表在网页上发布时,统计图或斜线单元格里的汉字会变成小方框,此时往往是服务器端操作系统的中文安装包没有装全,导致报表里用到的字体在服务器端的操作系统里找不到,因此成了小方块,6.4.1解决方法1.拷贝中文字体,1、 在启动java的时候加入如下参数,参数值为jdk的安装路径 -Dsun.java2d.fontpath=/j2se/jre/lib/fonts 2、 操作系统安装完整的中文安装包,然后把操作系统的中文字体文件拷贝到/j2se/jre/lib/fonts目录下 3、打开/j2se/jre/lib目录下的font .properties文件,把新添加的字体文件的对照信息加进该文件即可 4、重起 webserver,6.4.2解决方法2.安装中文包,1、操作系统安装完整的中文安装包 2、卸载jdk,重新安装,让jdk读取新的中文字体文件,6.4.3图形问题,现象:含有带斜线的或自动换行的单元格或者统计图的报表在网页上发布时,报表不能浏览 错误信息:root cause java .lang. NoClassDefFoundError java.lang.Class.forName0(Native Method) java.lang.Class.forName(Class.java:141) java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:62),解决方法1.升级jdk,把JDK升级到1.4及以上版本 由于润乾报表是被集成的,应用中往往还有用户自己的程序,如果服务器先装载用户自己的初始化程序,而该初始化程序的部分代码可能存在干扰,导致润乾报表设置的Djava.awt.headless=true参数不管用。此时必须在用户自己的初始化程序中或者应用服务器的启动java的命令中加入该参数。,解决方法2.启动x-window,目的:创建一个图形环境,在xwindow环境下启动服务器 命令:startx 某些用户的服务器机房不能随便出入,因此对服务器的操作只能通过终端来进行,此时可以在启动服务器的X-WINDOW后,用一个终端连接该X-WINDOW,保持连接,不要断开,然后重起应用服务器即可。如果系统运行过程中,该终端被断开了,就需要重新连接,并重起应用服务器。,解决方法3.部署pja环境,下载地址:/pja/en/#Download 部署pja: 搜索 web服务器名 pja 例如:weblogic pja websphere pja,6.5授权问题,没有配置授权 错误信息: 2007-06-24 18:16:47 runqianReportLogger : INFO - 报表证书错误! 未发现授权文件:Server .lic, 请检查是否在类路径或绝对路径上 解决办法: 在reportConfig.xml里配置授权文件 授权不是服务器版本 报表授权证书不是服务器版的,请更换正确版本! 授权过期 java.lang.RuntimeException: 在类路径中未找到授权文件或授权文件已过期 只能在x操作系统中运行 授权只能在Linux操作系统中运行!, license Server.lic 授权文件可以是: 1、绝对文件路径 2、相对web应用的文件路径 3、classpath中的资源路径,6.6 语义层问题,1.repotConfig.xml中语义层文件配置问题 2.语义层中使用的数据源与应用中不一致,1.配置文件问题,2007-09-02 14:38:37 runqianReportLogger : DEBUG - : InputStream cannot be null 错误来源:InputStream cannot be null : InputStream cannot be null 错误来源:InputStream cannot be null at c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年河北雄安新区新建片区学校公开选聘校长及骨干教师13人模拟试卷及完整答案详解一套
- 2025年甘肃省陇南市徽县中医医院医师招聘考前自测高频考点模拟试题及答案详解(有一套)
- 2025年滨州市面向社会公开招聘硕博士高层次人才(168人)考前自测高频考点模拟试题附答案详解
- 2025年七台河市公益性岗位人员招聘模拟试卷及答案详解(考点梳理)
- 涂装项目部培训知识课件
- 涂装课件教学课件
- 2025年春季中国商飞公司校园招聘和年度社会招聘模拟试卷及答案详解(全优)
- 2025河北衡水市冀州区招聘第二批社区工作者考前自测高频考点模拟试题含答案详解
- 涂色课件教学课件
- 2025贵州装备制造职业学院引进高层次人才(博士)、高技能人才招聘9人考前自测高频考点模拟试题附答案详解(典型题)
- 2025浙江工业大学之江学院招聘4人考试参考试题及答案解析
- 2025年山东第一医科大学第三附属医院公开招聘人员(17名)考试参考题库及答案解析
- 新疆博物馆课件介绍
- 2025贵州金控集团特需人才引进4人(第二批次)笔试历年参考题库附带答案详解
- 2026中国电建集团成都勘测设计研究院有限公司招聘笔试备考试题及答案解析
- 江苏省镇江市丹阳市高级中学重点班2025-2026学年高一上学期9月月考语文试题(含答案)(解析版)
- 2025年和平精英考试试题及答案
- 2025-2026学年高二物理上学期第一次月考卷(原卷及解析)【测试范围:第1~3章】(考试版A4)(广东专用)
- 2025年电工考试题库(内附答案)
- 朝鲜族朝鲜语考试题及答案
- GB/T 11182-2025橡胶软管增强用钢丝
评论
0/150
提交评论