`
flyeagle
  • 浏览: 211615 次
  • 来自: ...
社区版块
存档分类
最新评论

birt 集成web项目

阅读更多

           使用myeclipse 的Report Web Project创建项目并创建报表,可以单独运行,但是集成到使用spring mvc+mybatis项目后出现各种问题:

 集成方法,将myeclipse创建报表生成的相应目录拷贝到集成项目中(这里需要原样拷贝,因为myeclipse集成birt后做了不少定制性开发,和网上的eclipse 上下载的birt还是具有一定差异尤其是myeclipse生成的report-viewer和birt自身的webcontent,没有深入研究,初步怀疑是调整了默认路径),另外拷贝,lib中的jar到要集成项目的lib中,拷贝web.xml文件的相应配置到项目中,集成后启动tomcat报如下错,看了依赖jar已经添加,却依然报错,这个问题折腾了不少时间,删除重新导入jar,莫名就好了,这个问题很怪异:

   

java.lang.ClassNotFoundException: org.eclipse.birt.report.listener.ViewerHttpSessionListener

java.lang.ClassNotFoundException: org.eclipse.birt.report.listener.ViewerServletContextListener

 

 

运行报如下错误:

javax.servlet.ServletException: File "/webcontent/birt/pages/layout/FramesetFragment.jsp" not found

 

这个使用的是birt runtime时报这个错误,应该是birt相关类中指定使用webcontent,后来换成myeclipse生成的jar替换后(替换后找report-viewer路径)问题解决.

 

访问时报如下错误:

java.lang.IllegalStateException: Unable to determine the default workspace location.  Check your OSGi-less platform configuration of the plugin or datatools workspace path.

 

详细的是myeclipse生成的定制性问题,后来发现可能是由于数据库连接部分有问题,删除配置:

<list-property name="privateDriverProperties">
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.db.connectionProperties</name>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.oda.profile.db.provider.id</name>
                    <value>org.eclipse.datatools.enablement.oracle.connectionProfile</value>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.db.savePWD</name>
                    <value>true</value>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.drivers.defnType</name>
                    <value>org.eclipse.datatools.enablement.oracle.10.driverTemplate</value>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.enablement.oracle.catalogType</name>
                    <value>USER</value>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.driverDefinitionID</name>
                    <value>DriverDefn.org.eclipse.datatools.enablement.oracle.10.driverTemplate.Oracle Thin Driver</value>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.db.version</name>
                    <value>10</value>
                </ex-property>
                <ex-property>
                    <name>org.eclipse.datatools.connectivity.db.vendor</name>
                    <value>Oracle</value>
                </ex-property>
            </list-property>

 这部分配置删除后,没有报上面的错,却无法连接数据库.报如下错误:

Cannot open the connection for the driver:org.eclipse.birt.report.data.oda.jdbc.dbprofile

后来根据birt Demo中的配置方式将:

 <data-sources>
        <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc.dbprofile" name="peduds" id="152">
            <property name="databaseName">orcl</property>
            <property name="username">chkj</property>
            <encrypted-property name="password" encryptionID="base64">cGVkdQ==</encrypted-property>
            <property name="URL">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property>
            <property name="driverClass">oracle.jdbc.OracleDriver</property>
        </oda-data-source>
    </data-sources>

 替换为:

<data-sources>
        <oda-data-source extensionID="org.eclipse.birt.report.data.oda.jdbc" name="Data Source" id="26">
            <property name="odaDriverClass">oracle.jdbc.OracleDriver</property>
            <property name="odaURL">dbc:oracle:thin:@127.0.0.1:1521:orcl</property>
            <property name="odaUser">chkj</property>
            <encrypted-property name="odaPassword" encryptionID="base64">cGVkdQ==</encrypted-property> 
        </oda-data-source>
    </data-sources>

 

至此,birt集成web项目基本成功,报表可以正常访问.当然后续还要进行不少调整.后续会继续完善……

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics