《润乾报表在J2EE下的部署.ppt》由会员分享,可在线阅读,更多相关《润乾报表在J2EE下的部署.ppt(85页珍藏版)》请在三一办公上搜索。
1、润乾报表在j2ee下的部署,培训安排,时间:AM 9:3012:00 PM 13:30 16:30方式:讲解+练习,培训目标,了解润乾报表WEB架构;熟悉润乾报表WEB报表展现机制;学会在J2EE WEB服务器上部署润乾报表;TomcatWeblogicWebSphere学会在J2EE WEB应用中发布报表;润乾报表缓存配置,培训内容,一、了解润乾报表WEB架构二、熟悉部署流程和步骤三、部署润乾报表四、发布报表以及TAG标签的应用 五、润乾报表缓存配置六、常见部署发布问题,一、润乾报表的WEB架构,润乾报表总体结构润乾报表-WEB应用结构润乾报表-计算流程,润乾报表总体结构,报表是应用的一部分
2、!,润乾报表-WEB应用结构,润乾报表设计器,润乾报表-计算流程,浏览器,JSP文件,报表引擎,TAG,API,Report,Engine,报表模板,数据文件,Context,config,数据源配置授权配置日志配置语义层配置缓存配置,Html TagParam tag,二、部署流程和步骤,不同服务器配置方式不一样,润乾报表核心配置文件reportConfig.xml,2.1、安装J2EE WEB服务器,Tomcat拷贝安装目录Weblogic安装创建domainWebSphere安装,准备JDBC驱动,Tomcat拷贝JDBC驱动到common/libWeblogic修改cmd文件添加jdb
3、c到classpathWebsphere拷贝文件AppServerlib,创建数据库连接池,Tomcat修改配置文件Weblogic控制台Webspher控制台,三、部署润乾报表,安装服务器准备环境创建发布润乾报表应用,3.1创建应用,手动创建新应用创建目录拷贝文件手工修改配置文件导出开发环境中的应用发布应用选择授权文件选择服务器配置数据源,应用目录结构,应用目录WEB-INFclasseslibweb.xml,练习:创建应用,创建名为runqian的应用 必须含有WEB-INF目录WEB-INFclasseslib,3.2复制报表引擎,程序包七个jar程序包配置文件四个配置文件,练习:复制润
4、乾报表引擎,复制报表引擎七个jar包四个配置文件 操作:七个jar包拷贝到.runqianWEB-INFlib四个配置文件拷贝到.runqianWEB-INF,3.3复制报表打印程序,程序包runqianReport4Applet.jar第三方插件j2re-1_4_1-windows-i586-i.exej2re-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.rp
5、m,3.4相关的配置文件,1.reportConfig.xml配置2.runqianReportLog.properties日志配置3.web.xml配置,3.4.1 报表引擎基本配置,licenseServer.lic 授权文件reportFileHome/reportFiles 报表模板位置semanticsFile/WEB-INF/demo.xml 语义层文件JNDIPrefixjava:comp/env JNDI前缀dataSourcehsql,sqlsvr,1,iso8859-1,GBK,1;exercise,sqlsvr,1,iso8859-1,GBK,0,数据源配置数据源的JND
6、I名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,各服务器部署差异,JNDI前缀不同,报表引擎缓存配置,cachedParamsTimeout 120 参数在缓存中保存的时间 cachedReportDir c:runqiancached 报表缓存的文件夹 cachedIdPrefix A 报表缓存的前缀 cachedReportTimeout 120 报表缓存保存的时间 cachedToDiskOnly no缓存时是否只保存在硬盘上,报表引擎并发配置,maxConcurrentForReport 9999 同时计算的报表的个数 max
7、WaitForReport 9999 等待计算的报表的个数 maxWaitTimeForReport 9999 等待计算的最大时间,配置润乾日志,/日志级别可为OFF,ERROR,WARN,INFO,DEBUG,ALL,优先级依次降低,若为OFF则不输出任何/日志信息;若为INFO,则只输出ERROR,WARN,INFO等级别的信息,依次类推。log4j.logger.runqianReportLogger=DEBUG,LOG1,LOG2 日志级别/输出日志到系统控制台log4j.appender.LOG1.layout.ConversionPattern=%dyyyy-MM-dd HH:mm
8、:ss%c:%-5p%x-%m%n/输出日志到指定文件/可以指定LOG2.File的全路径,若未指明,则为相对WEB服务器启动文件的路径log4j.appender.LOG2.File=runqianReport.log 日志文件,配置信息,reportServletcom.runqian.report4.view.ReportServletconfigFile/WEB-INF/reportConfig.xml2reportServlet/reportServlet/WEB-INF/runqianReport4.tld/WEB-INF/runqianReport4.tld,3.5优化配置JVM
9、,java堆大小-Xms128m-Xmx300m 报表并发数控制数据库连接池连接个数配置webserver的连接数限制,Websphere中:服务器-应用程序服务器-server-进程定义-java虚拟机,创建好的应用结构,Web.xml-应用配置文件reportConfig.xml-报表配置文件runqianReportLog.properties-日志sales.xml-语义层定义文件,导出方式生成应用,向导式发布报表应用,3.7Jar命令打war包,开始 运行 cmd 进入应用所在的目录jar 查看帮助jar cvf runqian.war*.*,练习:把应用打成war,用jar命令把配
10、置好的应用打成war包注意事项:不同应用服务器中注意修改jndi名称应用中尽量不要有中文名称尽量删除web.xml的中文注释,发布应用到服务器,Tomcat修改配置文件Weblogic控制台Webspher控制台只能发布war文件,发布过程密切关注服务器是否有异常信息抛出!,测试应用,测试JSP确定应用正常测试报表测试报表授权配置正确确定数据源配置正确确定语义层配置正确,四、TAG标签应用,标签的分类html报表参数传递param参数表单行式报表异常捕获,4.1Tag标签的使用,引入Tag定义使用Tag对象,4.2Tag:html报表,目的在网页上展现报表前提报表已经设计出来,并且存放在应用可
11、以访问的路径中实现机理直接解析报表模板计算报表通过报表对象展现报表提供打印、导入、导出等功能菜单的生成可设置报表网页上展现的格式如:高宽、固定表头等,功能菜单,功能翻页打印导出提交位置顶部尾部同时,练习:简单使用,写一个jsp通过Tag展现报表通过报表模板直接展现报表例子,4.3参数传递,写一个jsp通过Tag展现报表通过报表模板直接展现报表例子注:参数之间用;隔开,动态参数传递,如果参数值或宏值是变化的,那么应该先在JSP代码中将参数串拼好,再传入Tag中,如下所示:/,隐藏参数传递,设置hiddenParams属性:/,WEB中一般有一些全局的变量,如登录用户名、用户角色等,而在报表中可能
12、会用到这些作为参数值,那么在用参数表单时怎么将这些值传进去呢?,4.4关联查询,关联查询,同一Jsp中实现关联查询1.定义参数表单报表、查询结果报表2.写一个Jsp嵌入param与html标签,注意:可通过属性传递隐藏参数到参数报表中!,4.5行式填报式报表的属性,4.6异常处理,普通报表计算异常处理exceptionPage-当Tag标签在计算报表遇到错误的时候可以通过该属性设置异常跳转页面填报表数据填报异常inputExceptionPage-当填报表数据填报遇到异常的时候可以通过该属性捕获异常异常捕获Tag标签将异常以exception为关键字放在request中可以按如下方式得到:例:
13、Exception e=(Exception)request.getAttribute(exception);,Tag小结,常用Tag标签HtmlParamTag属性报表定义显示风格设置高级属性数据库连接填报处理类,五:润乾报表缓存配置,缓存机制并发机制表达式预解析推荐配置方案,缓存机制,原理系统缓存配置报表调用配置缓存性能对比,缓存机制原理,缓存,用户一,用户二,发起Internet访问请求,未发现需要访问的内容,从应用服务器下载数据,将数据存储到缓存中,发起Internet访问请求,发现数据,从缓存下载,缓存控制原理,按照缓存载体分类,系统缓存配置缓存启动开关,是否启用缓存管理打开润乾we
14、b应用根目录下的WEB-INF/reportConfig.xml文件,找到或增加如下属性:alwaysReloadDefine yesValue取值Yes-关闭缓存,每次加载报表模板,并取数计算No 开启缓存,报表模板缓存。,系统缓存配置,配置文件为:位于润乾web应用根目录下的WEB-INF/reportConfig.xml文件 本文件可配置的属性包括:cachedParamsTimeout:表示提交给报表的参数在缓存中保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。cachedReportDir:表示报表缓存的文件夹,如在unix系统中,用户应对此文件夹有写的权限,并根据报表的
15、数量和访问量的大小以及缓存超时的时间,分配一个合理的空间大小。如果不设此参数或设置错误,则采用JDK默认的临时文件夹。cachedIdPrefix:表示报表缓存的前缀。cachedIdPrefix生成报表缓存号时的前缀串,只有在集群环境中并且多台服务器共享一个报表缓存目录时才需要设置。cachedReportTimeout:表示报表缓存保存的时间,以分钟为单位。如果不设此参数,缺省值是120分。此值应根据实际内存大小、缓存文件夹空间大小来调节,一般在60180分钟之间。,报表调用配置,如何控制单个报表是否需要缓存?Tag属性useCache 显示此报表时是否从缓存系统中取已经计算好的报表 ti
16、meout 从缓存系统中取多少分钟内产生的报表,如果没有此时间内的,则产生一个新报表。,注意:缓存起作用,必须是 alwaysReloadDefine值为no,缓存性能对比,第一次计算报表,第二次访问报表,第一次计算报表,第二次访问报表,没使用缓存,使用缓存,并发机制,原理并发配置,并发机制原理,双管齐下并发机制,静态并发控制机 最大报表运算并发数量 最大报表访问等待数量 报表访问最长等待时间,动态并发控制机 以单元格作为并发控制 的计量单位,充分利用 硬件资源。,动态并发机制的优势,动态并发的优点 提高系统资源利用率 增加系统并发访问能力 加快报表访问速度 动态判断报表大小,静态并发允许的报
17、表数量,问题:假如报表的数据量不大,静态并发控制就可以让系统出色的运行,但是,一旦单张报表的数据量变大,就会引发新的问题:并发的几张大报表在计算时,由于运算的优先级相同,每一个运算进程都在向系统要求更多的资源,即便系统没有剩余资源可供分配,各运算进程也不会自动释放自己占用的部分,这样的死锁情况往往导致应用服务长时间无反应甚至是应用服务器崩溃。,大数据量报表引发问题,格子数控制,根据系统资源量,算出允许报表服务器同时计算的最大格子数,系统并发配置,配置文件为:位于润乾web应用根目录下的WEB-INF/reportConfig.xml文件 可配置项包括:maxConcurrentForRepor
18、t:表示报表WEB应用中服务器可以同时计算的报表的个数。maxWaitForReport:表示报表WEB应用中服务器可以等待计算的报表的个数,对于溢出的报表个数,或者超时的报表,系统自动在队列中清除。maxWaitTimeForReport:表示报表等待计算的最大时间,以秒为单位。maxCellNum:动态并发配置的主要指标。注意:配置数据库允许的最大连接数和应用服务器的连接池个数时,必须大于 报表的并发数+报表的等待数,表达式预解析,数据集字段,单元格引用,常量,(123*2/6+3)*A1+34.5*2在报表计算时解析为:44*A1+69,什么是表达式预解析?在报表扩展前,对表达式进行解析
19、,把和扩展无关的部分先计算出来,把和扩展无关的变量定位先行定位,从而避免扩展后大量的重复运算。,ds1.fieldname解析为:ds1.#1,性能管理的推荐配置,访问量高的配置方案以JVM内存设置为512M的服务器为例子,假设并发量为1000,用户请求的报表为200单元格(差不多为一张A4纸的报表),不管是图片还是文本,我们以一个单元格平均为1.2K计算,可以得出报表系统的内存使用量为:1000*200*1.2k/1024k=234.375M 根据以上计算,我们在实际生产系统中,我们建议:cachedReportTimeout设置成60分钟,用户数据量大的情况下,减少报表缓存时间。alway
20、sReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。同时在tag标签中把useCache设置为yes,而timeout可以根据自己的实时要求进行设置,如果数据一天都不会变的话,建议设置为-1。maxConcurrentForReport为1000,这是并发量maxWaitForReport设置为2000maxWaitTimeForReport设置为10秒钟,10秒内得不到响应,用户需要再次请求。maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*50页=10000格,性能管理的推荐配置2,数据量大的配置方案 以JVM内
21、存设置为1G的服务器为例子,假设并发量最大为5,用户请求的报表为200单元格*1000页(数据量可能上千万,但通过条件查询,取其中几千条记录),一般大数据量都没有图片,所以以每一个单元格为0.5k计算,那么在最大并发量下,得出报表系统内存使用量为:200*1000*5*0.5/1024K=488.28125M 根据以上计算,我们在实际生产系统中,我们建议:cachedReportTimeout设置成180分钟,用户数据量大的情况下,增大报表缓存时间。alwaysReloadDefine设置为no,开启缓存,这样客户在翻页时,不再与数据库交互,减轻数据库服务器的负担。同时在tag标签中把useC
22、ache设置为yes,而timeout可以根据自己的实时要求进行设置,如果数据一天都不会变的话,建议设置为-1。maxConcurrentForReport为5,这是并发量maxWaitForReport设置为10maxWaitTimeForReport设置为300秒钟,6分钟内得不到响应,用户需要再次请求。maxCellNum,在内存中,同时计算的单元格数量建议为200单元格*500页=100000格,性能管理的推荐配置3,在开发模式下的配置这时我们可以设置reportConfig.xml中的alwaysReloadDefine为yes,如下所示:alwaysReloadDefineyes,
23、六、常见部署发布问题,1.不同版本tomcat的数据源如何配置2.中文乱码问题3.非windows系统下的中文问题4.授权文件问题,6.1 Tomcat5.0 配置应用,driverClassName url username sa password sa,6.1.1Tomcat5.5&6.0 配置应用,Tomcat安装目录 confCatalinalocalhost新建xml文件,6.2Tomcat中文乱码,Tomcat_HOME/conf/server.xml,6.3数据库的连接问题,常见现象原因与解决方法,数据库连接不上现象,:产生数据工厂:com.runqian.report4.dat
24、aset.SQLDataSetFactory 失败错误来源::Cannot create PoolableConnectionFactory(socket creation error)错误来源:Cannot create PoolableConnectionFactory(socket creation error),数据库连接不上解决方法,1、连接池配置错误(driverurluserpassword等写法有误)2、报表模板的数据集配置中的数据源名称、reportConfig.xml中的datasource名称、及应用服务器的jndi名称,三者存在不一致的现象3、reportConfig.
25、xml中数据源没有配置4、jdbc包缺失、版本不正确,或者没有正确放在应用服务器的java类路径下,字符集配置错误,错误信息报表中所有从数据库中取出的中文乱码解决方法将reportConfig.xml中dataSource对应的值中第4个选项由GBK改为ISO-8859-1或由ISO-8859-1改为GBK即可 dataSource ora9i,ORACLE,1,GBK,GBK,0;数据源的JNDI名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,6.4中文问题,现象:如果含有带斜线的单元格或者统计图的报表在网页上发布时,统计图或斜线单元
26、格里的汉字会变成小方框,此时往往是服务器端操作系统的中文安装包没有装全,导致报表里用到的字体在服务器端的操作系统里找不到,因此成了小方块,解决方法1.拷贝中文字体,1、在启动java的时候加入如下参数,参数值为jdk的安装路径-Dsun.java2d.fontpath=/j2se/jre/lib/fonts 2、操作系统安装完整的中文安装包,然后把操作系统的中文字体文件拷贝到/j2se/jre/lib/fonts目录下 3、打开/j2se/jre/lib目录下的font.properties文件,把新添加的字体文件的对照信息加进该文件即可 4、重起 webserver,解决方法2.安装中文包,
27、1、操作系统安装完整的中文安装包 2、卸载jdk,重新安装,让jdk读取新的中文字体文件,图形问题,现象:含有带斜线的或自动换行的单元格或者统计图的报表在网页上发布时,报表不能浏览错误信息: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)
28、,解决方法1.升级jdk,把JDK升级到1.4及以上版本由于润乾报表是被集成的,应用中往往还有用户自己的程序,如果服务器先装载用户自己的初始化程序,而该初始化程序的部分代码可能存在干扰,导致润乾报表设置的Djava.awt.headless=true参数不管用。此时必须在用户自己的初始化程序中或者应用服务器的启动java的命令中加入该参数。,解决方法2.启动x-window,目的:创建一个图形环境,在xwindow环境下启动服务器命令:startx某些用户的服务器机房不能随便出入,因此对服务器的操作只能通过终端来进行,此时可以在启动服务器的X-WINDOW后,用一个终端连接该X-WINDOW,
29、保持连接,不要断开,然后重起应用服务器即可。如果系统运行过程中,该终端被断开了,就需要重新连接,并重起应用服务器。,解决方法3.部署pja环境,下载地址:http:/部署pja:搜索 web服务器名 pja例如:weblogic pja websphere pja,6.5授权问题,没有配置授权错误信息:2007-06-24 18:16:47 runqianReportLogger:INFO-报表证书错误!未发现授权文件:Server.lic,请检查是否在类路径或绝对路径上解决办法:在reportConfig.xml里配置授权文件 授权不是服务器版本报表授权证书不是服务器版的,请更换正确版本!授
30、权过期:在类路径中未找到授权文件或授权文件已过期只能在x操作系统中运行授权只能在Linux操作系统中运行!,licenseServer.lic 授权文件可以是:1、绝对文件路径2、相对web应用的文件路径3、classpath中的资源路径,6.6 语义层问题,中语义层文件配置问题2.语义层中使用的数据源与应用中不一致,1.配置文件问题,2007-09-02 14:38:37 runqianReportLogger:DEBUG-:InputStream cannot be null错误来源:InputStream cannot be null:InputStream cannot be null
31、错误来源:InputStream cannot be null at com.runqian.report4.semantics.SemanticsManager.readXMLStream(UnknownSource:153)at com.runqian.report4.view.ReportServlet.init(Unknown Source:333)at javax.servlet.GenericServlet.init(GenericServlet.java:212)at org.apache.catalina.core.StandardWrapper.loadServlet(Sta
32、ndardWrapper.java:1161)错误原因分析:at com.runqian.report4.semantics.SemanticsManager.readXMLStream(UnknownSource:153)在webserver启动的时候报此错误,由此可判断出问题大约是出在读取语义层文件上。语义层文件是配置在reportConfig.xml文件中的。所以我们检查reportConfig.xml中配置的语义层文件是否有问题,2.数据源连接问题,:应用中和设计器连的是同一个数据源并且数据源名称相同,有些报表在设计器里可以正常访问,但在应用中却访问不到。后台错误信息:2007-09-
33、02 14:33:16 runqianReportLogger:ERROR-error:单元格B2中有错误:表达式:ds1.INDICATORSID中不可识别的数据集函数:INDICATORSID at com.runqian.report4.model.expression.Expression.createNode(Unknown Source:156)at com.runqian.report4.model.expression.Expression.create(Unknown Source:438)at com.runqian.report4.model.expression.Expression.(Unknown Source:501),内容总结,1.安装web服务器2.新建应用3.拷贝相关程序4.配置相关文件并发布应用5.写jsp发布报表6.异常捕获7.性能优化8.常见问题处理,问题解决方法总结,部署过程中遇到问题解决方法:1.查阅相关资料3.baidu,Google搜索4.咨询润乾技术支持,Q&A,谢谢!,
链接地址:https://www.31ppt.com/p-6310182.html