• 润乾报表整合到Tomcat服务器的部署过程


    使用第三方的报表设计器/服务器来快速的开发报表。

    润乾服务器是使用Java语言编写的一个灵活易用的报表服务器和设计器。因此,用它来做Java的报表设计是很快捷的,但是经常报错,而且不好查错。

     

    下面来介绍一下润乾报表4.0J2EE下的部署【非集成部署】

    ① 下载一个新的Tomcat

    ② 新建一个Web应用,基本目录结构如下:

    |-report

    |----------include [包含imagesjscss等资源]

    |----------reportFiles [包含润乾设计的报表raq文件]

    |----------reportJsp [包含用于展现raq资源的jsp文件]

    |----------WEB-INF

               |----------classes [放置润乾的授权文件]

               |----------lib [放置jar]

               |----------web.xml [配置应用程序]

               |----------其他配置文件  

     

    ③ 拷贝润乾的Web发布包

    一般来说,我们创建了一个新的应用后,可以将润乾的web发布报作为一个标准的应用去发布,因为润乾的发布包本身就是上述的标准结构。

    我们先来看看润乾的发布包的目录结构

    根据以上的发布包,选择性的拷贝了如下的内容到report应用之中

    Report WEB应用的结构 WEB-INF的目录结构

         

    注意:

    1) 我们一定要将数据库驱动和润乾的jar包都拷贝到WEB-INFlib文件夹里,且尽量不要将jar包放在全局的lib里。不便于管理,若无驱动则会报出如下的错误:

    错误信息:

    runqianReportLogger : [ERROR]  - error: 产生数据工厂: 

    com.runqian.report4.dataset.SQLDataSetFactory 失败

    错误来源:: Cannot load JDBC driver class 'com.ibm.db2.jcc.DB2Driver'

     

    这个错误是提示我们JDBC无法连接,是驱动问题。因此,必须要拷贝的jar包的列表如下: 

     

    润乾的jar包              DB2数据库的驱动

         

    2) 记得将服务器的授权文件runqianWindowServer.lic拷贝到WEB-INF/classes文件夹下。否则会报错如下:

    runqianReportLogger : [INFO ]  - 报表证书错误!

    未发现授权文件:runqianWindowServer.lic, 请检查是否在类路径或绝对路径上l

     

    ④ 配置相关的文件

    1web.xml文件

    直接把润乾的demoweb.xml文件拷贝进来,无需改动。

     

    2) reportConfig.xml文件[容易出错的配置文件,讲解部分重要的配置] 

    <?xml version="1.0" encoding="UTF-8" ?>

    <reportConfig>

      

    第一个重要的配置:license【表示润乾公司提供的授权文件名及其路径,可以是绝对文件路径;也可以是相对于WEB应用根目录的相对路径(此时要以“/”开头)

        <config>

          <name>license</name>

          <value>runqianWindowServer.lic</value>

    </config>

     

    第二个重要的配置:reportFileHome【表示编辑好的报表文件在应用中存放的位置,值可相对于WEB应用根目录;也可是绝对路径,分隔符用“/”表示,如d:/myReport/web/reportFiles

        <config>

          <name>reportFileHome</name>

          <value>/reportFiles</value>

    </config>

     

    第三个重要的配置:JNDIPrefix【表示查找数据源时的环境串前缀,在不同的WEB服务器中不同,如Tomcat中是java:/comp/env,而WeblogicWebsphere中均不需要,可以不填。】

    <config>

          <name>JNDIPrefix</name>

          <value>java:/comp/env</value>

    </config>

     

    第四个重要的配置:dataSource【表示用户在WEB应用中要用到的数据源配置,其格式如下:数据源的JNDI名称,数据库类型[,取数时是否需要转换编码,数据库字符集编码,显示报表时的字符集编码][,SQL是否需要转码];一般我们只需要配置前两个即可。】

        <config>

          <name>dataSource</name>

          <value>NEWMOD,db2;value>

    </config>

     

    第五个重要的配置:数据源信息的配置【以应用程序为单位,配置特定的数据源。】【备注:若使用的是JNDI直连,则这个配置可以忽略】

    <jdbc-ds-configs>

          <jdbc-ds-config>

              <name>report</name>

              <db-type>javax.sql.DataSource</db-type>

    <connection-url>jdbc:db2://192.168.100.135:50000/NEWMOD </connection-url>

              <driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>

              <user-name>db2admin</user-name>

              <password>db2admin</password>

              <db-charset>GBK</db-charset>

              <client-charset>GBK</client-charset>

            </jdbc-ds-config>

     </jdbc-ds-configs>

    </reportConfig>

     

    注意,这里的name属性的值是report,也就是应用程序的名字。而不是JNDI的名字。

    如果配置成JNDI的名字,则会出现报错,查看DB2的报错大全可见:

     

    类代码2E无效连接名称
    25.类代码2E:无效连接名称SQLSTATE值  
    含义:2E000连接名称无效。

     

    可以看出,这就是因为name属性配错的原因。

     

    ⑤ 配置数据源

    reportConfig.xml文件中配置了数据源的连接信息,但是没有配置数据源。

    现在我们在conf----catalina----localhost文件夹下建立一个和应用程序同名的report.xml文件,内容如下:

    <?xml version="1.0" encoding="UTF-8"?>

     <Context path="/report" docBase="D:\ report\webapps\report" reloadable="true" > 

    <Resource auth="Container" 

    name="newmodules/DataSource"

      type="javax.sql.DataSource" 

    maxWait="10000" maxIdle="30" maxActive="100"  

      username="db2admin" 

    password="db2admin" 

    driverClassName="com.ibm.db2.jcc.DB2Driver" 

      url="jdbc:db2://192.168.100.135:50000/NEWMOD"

      />

      </Context>  

     

    如果不配置数据源会报错如下:

    javax.servlet.ServletException: No report config file!

     

    ⑥ 发布报表和JSP页面并访问

    测试:将financeView.raq文件放在reportFiles文件夹里,financeView.jsp页面放在reportJsp文件夹下,然后访问jsp页面:http://localhost:8080/report/reportJsp/financeView.jsp

    展现如下:

     

     

    真的成功了呢~好棒啊~

    好了,继续工作了~

     

  • 相关阅读:
    设计模式学习笔记——Bridge 桥接模式
    设计模式学习笔记——Adapter 适配器模式
    protoc protobuff安装
    docker-compose启动consul
    docker etcd 环境搭建
    nifi的去重方案设计(二)-外部存储mysql全局去重
    实现一套ES全文检索语法-到Lucene语法的转换工具,以实现在es外部兼容处理文本分词
    nifi的去重方案设计(一)-单队列内去重.md
    k8s 证书过期处理
    部分项目从kafka迁移至pulsar,近期使用中碰到了一些问题,勉强把大的坑踩完了,topic永驻,性能相关
  • 原文地址:https://www.cnblogs.com/avivaye/p/2773681.html
Copyright © 2020-2023  润新知