资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第,*,页,润乾报表在j2ee下的部署,主讲:梁伟,培训内容,一、部署流程和步骤,二、WEB应用配置,三、应用服务器简介,四、常见部署问题,五、编程接口入门,六、4.0和3.5在部署上的差异,前题安装WEB服务器,Tomcat,拷贝安装目录,Weblogic,安装,创建domain,WebSphere,安装,练习:安装应用服务器,选择一种你关注的应用服务器并安装,常见问题分析,一、部署流程和步骤,配置应用服务器的数据库连接池,创建新应用,拷贝润乾报表web发布包,配置润乾相关的配置文件,发布报表应用,打war包,Web应用配置,不同服务器配置方式不一样,润乾报表核心配置文件reportConfig.xml,1.1配置应用服务器的连接池,1.部署JDBC驱动,2.创建数据库连接池,3.各服务器部署差异,Tomcat4.0数据源,name项是JNDI的名称定义,程序通过JNDI才能找到此对象,auth项即连接池管理权属性,这里取值Container,申明为容器管理,type项即对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池,user、password、driverClassName、driverName,依次为数据库的用户名、密码、JDBC驱动和数据库地址,练习:创建连接池,在您关注的应用服务器下创建连接池,常见问题分析,1.url、dirver,2.找不到数据源,3.tomcat5.0 及以上版本如何配置连接池,4.设计器和服务器数据源名称是否需要一致,1.1.3各服务器部署差异,JNDI前缀不同,Websphere需要以WAR文件方式发布,服务器,JNDI前缀,说明,Tomcat,java:comp/env,4.1修改server.xml,Weblogic,无,Webspher,无,Resin,java:comp/env,Conf.xml,Oracle IAS,jdbc,常见问题小节,二、,WEB应用配置,创建应用,复制文件,配置日志,配置引擎,发布应用,前提了解web应用目录结构,2.1创建应用,应用目录,WEB-INF,classes,lib,web.xml,练习:创建应用,创建名为runqian的应用,必须含有WEB-INF目录,WEB-INF,classes,lib,2.2复制报表引擎文件,程序包,七个jar程序包,配置文件,四个配置文件,练习:复制润乾报表引擎,复制报表引擎,七个jar包,四个配置文件,操作:,七个jar包拷贝到.runqianWEB-INFlib,四个配置文件拷贝到.runqianWEB-INF,2.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,2.4相关的配置文件,1.reportConfig.xml配置,2.web.xml配置,3.runqianReportLog.properties日志配置,2.4.1基本配置,配置授权文件,报表模板位置,配置语义层文件位置,JNDI前缀,数据库配置,练习:reportConfig.xml的基本配置,license,Server.lic,授权文件,reportFileHome,/reportFiles,报表模板位置,semanticsFile,/WEB-INF/demo.xml,语义层文件,JNDIPrefix,java:comp/env,JNDI前缀,dataSource,jdbc/test,oracle,GBK;exercise,sqlsvr,1,iso8859-1,GBK,0,数据源配置,数据源的JNDI名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,2.4.2缓存配置,1.报表参数缓存时间,2.报表缓存临时目录,3.报表缓存时间,4.缓存位置,练习:reportConfig.xml,的缓存配置,cachedParamsTimeout,120,参数在缓存中保存的时间,cachedReportDir,c:runqiancached,报表缓存的文件夹,cachedIdPrefix,A,报表缓存的前缀,cachedReportTimeout,120,报表缓存保存的时间,cachedToDiskOnly,no,缓存时是否只保存在硬盘上,2.4.3并发配置,大报表,:当结果报表格子数超过一万个时,可以设为大报表,进行并发控制,1.,同时计算的报表的个数,2.,等待计算的报表的个数,3.,等待计算的最大时间,练习:,reportConfig.xml,的并发配置,maxConcurrentForReport,9999,同时计算的报表的个数,maxWaitForReport,9999,等待计算的报表的个数,maxWaitTimeForReport,9999,等待计算的最大时间,2.4.4配置润乾日志,配置日志文件,配置日志级别,练习:日志配置,/日志级别可为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,日志文件,2.5发布web应用,Tomcat,修改配置文件,Weblogic,控制台,Webspher,控制台,只能发布war文件,Jar命令打war包,开始 运行 cmd,进入应用所在的目录,jar 查看帮助,jar cvf runqian.war*.*,练习:把应用打成war,用jar命令把配置好的应用打成war包,注意事项:,不同应用服务器中注意修改jndi名称,应用中尽量不要有中文名称,尽量删除web.xml的中文注释,常见问题小节,三 常见应用服务器配置简介,3.1、Tomcat4部署,3.2、Tomcat5.0部署,3.3、Weblogic的部署,3.4、Websphere的部署,3.1,Tomcat4.0部署,安装tomcat4.0,创建数据库连接池,创建应用,修改配置文件,部署应用,3.1.1安装Tomcat,下载Tomcat安装程序,安装Tomcat,确保Tomcat正常启动,3.1.2,创建数据库连接池,driverClassName,com.newatlanta.jturbo.driver.Driver,url,jdbc:JTurbo:/127.0.0.1/pubs/charset=GBK,username,sa,password,sa,3.1.3创建应用,按照web应用的目录结构创建应用,复制报表引擎文件,复制报表打印程序,3.1.4修改reportConfig.xml,DateSerlvlet,授权文件license,报表模板路径reportFileHome,JNDI前缀JNDIPrefix,数据源dataSource,缓存目录cachedReportDir,日志文件logConfig,3.1.5修改日志配置文件,日志级别,log4j.logger.runqianReportLogger=DEBUG,LOG1,LOG2,日志文件,log4j.appender.LOG2.File=runqianReport.log,3.1.5部署应用,直接拷贝应用到webapps目录下面,修改应用部署文件,Tomcat4修改server.xml,Tomcat5.0 配置应用,driverClassName,com.newatlanta.jturbo.driver.Driver,url,jdbc:JTurbo:/127.0.0.1/pubs/charset=GBK,username,sa,password,sa,Tomcat中文乱码,Tomcat_HOME/conf/server.xml,3.3、Weblogic的部署,拷贝jdbc驱动包,拷贝WebLogic81serverlib下,修改WebLogic81commonbincommEnv.cmd,配置连接池数据源,部署报表应用,目录发布,War/ear发布,3.4、Websphere的部署,拷贝jdbc驱动包,配置连接池数据源,部署报表应用,war/ear发布,常见问题小节,四、常见部署问题,1.版本升级,2.应用服务器的差异,3.操作系统的差异,4.数据库连接,5.性能优化,4.1、版本升级,新旧包混用,更新不全,授权文件不正确,4.1.1、新旧包混用,旧包未删除,report4.jar,缓存未删除,多个路径下存在旧包,搜索,runqian,*.jar,然后把可疑的jar全部删除,再部署新版本。,4.1.2、更新不全,同时多个包需要更新,但是只更新其中的一部分,runqianReport*.jar,poi2.jar(导出Excel)、itext _ rq.jar,(导出Word)、,runqianReport4Applet.jar(打印),需要同时更新配置文件,如web.xml,reportConfig.xml、tld文件等,runqianReport4.tld文件版本太旧导致的常见错误信息:org.apache.jasper.JasperException:/reportJsp/showReport.jsp(140,0)Attribute,scale,invalid according to the specified TLD,4.1.3.1、授权证书不是服务器版,授权证书不是服务器版的:,2007-06-24 18:14:12 runqianReportLogger:INFO -报表证书错误!,报表授权证书不是服务器版的,请更换正确版本!,解决:更换服务器版的授权。,4.1.3.2、只能在x操作系统中运行,错误信息:,2007-06-24 18:18:57 runqianReportLogger:INFO -报表证书错误!,您现在的报表授权只能在Linux操作系统中运行!,.,解决办法:,更新授权,换用windwows版的授权。,4.1.3.3、没有配置授权,reportConfig.xml中没有配置授权文件名,错误信息:,2007-06-24 18:16:47 runqianReportLogger:INFO -报表证书错误!,未发现授权文件:Server.lic,请检查是否在类路径或绝对路径上,解决办法:,在reportConfig.xml里配置授权文件,4.1.3.4、,授权文件已过期,授权文件已过期,错误信息:,2007-07-24 18:24:32 runqianReportLogger:ERROR -error:,java.lang.RuntimeException:在类路径中未找到授权文件或授权文件已过期,at com.runqian.report4.usermodel.Engine.calc(Unknown Source:85),com.runqian.report4.tag.HtmlTag.doStartTag(Unknown Source:287),解决办法:更新授权,授权文件不正确,其他原因:,java.util.MissingResourceException:Cant find bundle for base name com.runqian.base4.resources.server,locale en_US at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:838),4.2,应用服务器的差异,JNDI前缀,JDK版本,中文的支持,Servlet的 版本,4.2.1应用服务器的JNDI差异,Datasource的前缀(web.xml中JNDIPrefix属性值),服务器,Tomcat,resin,JBOSS,weblogic,websphere,JNDIPrefix,Java:comp/env,Java:comp/env,Java:,4.2.2,jdk的版本,比较容易导致jdk版本困扰的应用服务器一般是websphere,由于websphere本身是IBM的产品,因此其自带的JDK也是IBM的,虽然也符合J2EE的标准,但是在个别地方和SUN的还是有区别,例如其JIT(即时编译器)就有问题,如果这个选项不关闭,程序有时候会出问题。,另外,和oracle ERP集成时必须注意,其自带的jdk版本是jdk1.3,而且oracle ERP往往会在客户端安装一些程序,因此导致了客户端的jdk版本为jdk1.3。但是润乾的打印applet要求jdk1.4,两者会造成冲突。因此如果遇到这种情况,请联系润乾的技术支持,要一个专门在jdk1.3下编译的打印applet包。,4.2.3,中文的支持,不同的应用服务器,对中文的支持不一样,例如tomcat4和tomcat5就有区别,此时如果参数是程序员自己接收并传递给tag标签的,那么要记得转码,尤其是报表模板文件名,否则容易出现莫名其妙的错误,例如报表模板找不到等等。,在websphere下,对中文的支持也比较差,打war包时不能有中文名的文件,reportConfig.xml文件中所有中文注释要删掉,且reportConfig.xml中的第一句关于文件字体的定义要写成UTF-8,如下所示:,4.2.4 Servlet的版本,一般由于servlet的版本导致的错误很少见,润乾支持的servlet版本是servlet2.3,低于此版本 servlet就不支持。一般来说比较早期的应用服务器,其 servlet版本比较低,可能会低于servlet2.3。,我们目前为止仅仅遇到过websphere4.0,其 servlet版本比较低,但是也有解决办法,就是把websphere5.0里的相关jar包拷贝过去替换掉,即可解决问题,websphere4.0本身往高版本兼容。,4.3操作系统的差异,中文问题,图形问题,4.3.1,中文问题,现象:如果含有带斜线的单元格或者统计图的报表在网页上发布时,统计图或斜线单元格里的汉字会变成小方框,此时往往是服务器端操作系统的中文安装包没有装全,导致报表里用到的字体在服务器端的操作系统里找不到,因此成了小方块,4.3.1.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,4.3.1.2,解决方法,2.安装中文包,1、操作系统安装完整的中文安装包,2、卸载jdk,重新安装,让jdk读取新的中文字体文件,4.3.2图形问题,现象:含有带斜线的或自动换行的单元格或者统计图的报表在网页上发布时,报表不能浏览,错误信息: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),4.3.2.1,解决方法,1.升级jdk,把JDK升级到1.4及以上版本,由于润乾报表是被集成的,应用中往往还有用户自己的程序,如果服务器先装载用户自己的初始化程序,而该初始化程序的部分代码可能存在干扰,导致润乾报表设置的Djava.awt.headless=true参数不管用。此时必须在用户自己的初始化程序中或者应用服务器的启动java的命令中加入该参数。,4.3.2.2,解决方法,2.启动x-window,目的:创建一个图形环境,在xwindow环境下启动服务器,命令:startx,某些用户的服务器机房不能随便出入,因此对服务器的操作只能通过终端来进行,此时可以在启动服务器的X-WINDOW后,用一个终端连接该X-WINDOW,保持连接,不要断开,然后重起应用服务器即可。如果系统运行过程中,该终端被断开了,就需要重新连接,并重起应用服务器。,4.3.2.3,解决方法,3.部署pja环境,下载地址:web服务器名 pja,例如:weblogic pja,websphere pja,4.4数据库的连接问题,常见现象,原因与解决方法,4.4.1,数据库连接不上,现象,:产生数据工厂:com.runqian.report4.dataset.SQLDataSetFactory 失败错误来源::Cannot create PoolableConnectionFactory(socket creation error)错误来源:Cannot create PoolableConnectionFactory(socket creation error),4.4.2,数据库连接不上解决方法,1、连接池配置错误(driverurluserpassword等写法有误),2、报表模板的数据集配置中的数据源名称、web.xml中的datasource名称、及应用服务器的jndi名称,三者存在不一致的现象,3、reportConfig.xml中数据源没有配置,4、jdbc包缺失、版本不正确,或者没有正确放在应用服务器的java类路径下,4.4.3,字符集配置错误,错误信息,报表中所有从数据库中取出的中文乱码,解决方法,将reportConfig.xml中dataSource对应的值中第4个选项由GBK改为ISO-8859-1或由ISO-8859-1改为GBK即可,dataSource,ora9i,ORACLE,1,GBK,GBK,0;,数据源的JNDI名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,4.4.3,sql需要转码,错误信息,带中文的查询语句或更新语句出现乱码,解决方法,将web.xml中dataSource对应的值中第3个选项0改为1即可,dataSource,ora9i,ORACLE,1,GBK,GBK,0,;,4.5性能优化,通过配置文件reportConfig.xml,调整jvm及服务器性能,4.5.1配置reportConfig.xml文件,maxConcurrentForReport,9999,同时计算的报表的个数,maxWaitForReport,9999,等待计算的报表的个数,maxWaitTimeForReport,9999,等待计算的最大时间,4.5.2调整jvm及服务器性能,java堆大小,-Xms128m-Xmx300m,报表并发数控制,数据库连接池连接个数配置,webserver的连接数限制,常见问题小节,五编程接口入门,5.1报表发布-,TAG,标签,Tag标签,html报表,代,码,练习:简单使用,写一个jsp通过Tag展现报表,通过报表模板直接展现报表,例子,5.2 TAG控制功能,funcBarLocation 功能条的位置,Separator 各功能钮间的分隔符,funcBarFontFace 功能条的字体,funcBarFontSize,功能条的字体大小,funcBarFontColor,功能条的字体颜色,functionBarColor 功能条背景色,needSaveAsExcel 存为Excel的功能钮 yes或no,needSaveAsPdf 存为PDF的功能钮 yes或no,needSaveAsWord 存为Word的功能钮 yes或no,needSaveAsText 存为Text的功能钮 yes或no,needPrint 打印报表的功能钮 yes或no,练习:功能控制,写Jsp通过Tag标签在网页对报表进行展现,要求正确分页、能导出excelpdfwordtext等,能弹出打印的applet并打印,5.2.1 捕获异常信息,标签中加入:,exceptionPage=/errorpage.jsp“,5.2.2 raq 版本混乱常见问题.,现象:,java.io.StreamCorruptedException:invalid stream header at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737),at java.io.ObjectInputStream.(ObjectInputStream.java:253),at com.runqian.report4.util.ReportUtils.read(Unknown Source:40),at com.runqian.report4.view.ReportCalculator.calc(Unknown Source:72),at com.runqian.report4.tag.HtmlTag.doStartTag(UnknownSource:287),原因:,3.5的设计器做的raq文件,在4.0的服务器上发布.,解决方法:1.,用4.0的设计器,重新设计报表.,2,.使用4.0设计器的报表迁移功能.将3.5版的raq转为4.0版,5.2.3设计器与服务器jar包不一致,现象:,2007-06-17 15:17:22 runqianReportLogger:ERROR -error:,java.io.OptionalDataException,at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1231),at java.io.ObjectInputStream.readObject(ObjectInputStream.java:324),at com.runqian.report4.usermodel.PrintSetup.readExternal(Unknown Source:,1134),at java.io.ObjectInputStream.readExternalData(ObjectInputStream.java:168,6),at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1,644),at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1274),原因:设计器与服务器report4.jar不一致.,解决方法:将设计器report4.jar与服务器report4.jar包保持一致.,资料下载地址,1、报表设计文档下载,润乾报表用户手册、FAQ、例子,及练习,2、部署文档下载,客户端打印设置保存说明、润乾报表V3.5在非J2EE架构的WEB应用中的发布、润乾报表在J2EE下的部署,3、应用开发文档下载,润乾报表应用开发文档、api接口文档、例子代码库,常见问题小节,六、4.0版和3.5版在部署上的差异,1.web发布包,2.配置文件,3.授权文件,4.数据源配置,4.0 Web发布包目录结构,3.5 Web发布包目录结构,6.1,Jar包的差异,6.2配置文件的差异,6.3授权文件,授权文件名称,3.5 授权文件后缀以.dat 结尾 例如:Server.dat,4.0 授权文件后缀以.lic 结尾 例如:Server.lic,6.4数据源配置,数据源,3.5,jdbc/test,oracle,GBK;jdbc/sw,sqlsvr,iso-8859-1,1,数据源的JNDI名称,数据库类型,数据库字符集编码,SQL是否需要转码,4.0,jdbc/test,oracle,GBK;exercise,sqlsvr,1,iso8859-1,GBK,0,数据源的JNDI名称,数据库类型,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码,SQL是否需要转码;,6.5 4.0 Web.xml,拷贝润乾提供的web.xml文件中的内容到你应用的web.xml文件中,reportServlet,com.runqian.report4.view.ReportServlet,configFile,/WEB-INF/reportConfig.xml,2,reportServlet,/reportServlet,/WEB-INF/runqianReport4.tld,/WEB-INF/runqianReport4.tld,总结,部署过程中遇到问题解决方法:,1.查阅相关资料,lwei_998,Mail:liangwei,润乾支持:support,BBS:5365-826,Q&A,谢谢!,
展开阅读全文