0

我正在使用 Jasperserver 4.5.0 Pro。我为一些附加功能开发了一个自定义数据源。使用此自定义 DS 的所有报告都会正确执行,并在手动执行时显示正确的输出。但是,当使用 Jasper 的报告作业计划程序计划相同的报告时,会话启动会出现一些问题,因此报告不会被执行。

让我稍微解释一下。

  1. 对于手动执行报告 -

作为自定义 DS 的一部分,我必须更新以下 2 个 xmls -

viewReportFlow.xml:我更新了动作状态“runReport”以使用我们自定义的 DS 执行器动作 bean 方法“xmlHttpDsExecuterAction.setUpSession”来启动会话。请参阅下面的 runReport 标签 -

<action-state id="runReport" xmlns:b="http://www.springframework.org/schema/webflow" xmlns:xi="http://www.w3.org/2001/XInclude">
<on-entry>
    <evaluate expression="xmlHttpDsExecuterAction.setUpSession"/>
</on-entry>
<evaluate expression="viewReportActionBean"/>
<transition on="success" to="reportOutput"/>
<on-exit>
    <evaluate expression="xmlHttpDsExecuterPageAction.setIndex"/>
</on-exit>

viewReportBeans.xml :我在这里定义了上述流 xml 中使用的执行器操作 bean -

<bean id="xmlHttpDsExecuterAction" class="com.sigma.reporting.xmlhttpds.XmlHttpDsExecuterAction" xmlns:xsi="http://www.w 3.org/2001/XMLSchema-instance"/> <bean id="xmlHttpDsExecuterPageAction" class="com.sigma.reporting.xmlhttpds.XmlHttpDsExecuterPageAction" xmlns:xsi="http://www.w 3.org/2001/XMLSchema-instance">
<property name="requestParameterPageIndex" value="pageIndex"/>
<property name="flowAttributePageIndex" value="pageIndex"/>
<property name="xmlHttpDataSourceName" value="com.sigma.reporting.xmlhttpds.XmlHttpDsExecuterDataSourceService"/>
<property name="repository">
    <ref bean="repositoryService"/>
</property>
<property name="jasperPrintName" value="jasperPrintName"/>
<property name="reportUnitObject" value="reportUnitObject"/> </bean>
  1. 对于报告的作业调度:我想使用调度程序实现与上面类似的实现。在我的调查过程中,我试图分析调度程序流程,并尝试进行我们的更改,但到目前为止还没有运气。任何人都可以让我知道通过调度程序运行报告使用哪些流程,还请推荐配置自定义 DS 的位置吗?
4

1 回答 1

0

最后,在了解了 japser 服务器调度程序的流程之后,我得到了解决方案。为了设置您的自定义数据源 bean 和调用函数,我们需要指定 bean 目标,我们可以在jobOutput标记中的reportJobFlow.xml$JASPER_HOME/apache-tomcat/weaaps/jasperserver-pro/WEBINF/flows/reportJobBeans.xml中使用这个 bean,就像这样

 <view-state id="jobOutput" view="modules/reportScheduling/jobOutput">
        <on-entry>
            <set name="flowScope.prevForm" value="'jobOutput'"/>
            <evaluate expression="reportOptionsJobEditAction.setOutputReferenceData"/>
            <evaluate expression="xmlHttpDsExecuterAction.setUpSession"/>
        </on-entry>
 </view-state>
于 2012-07-03T13:31:52.353 回答