Jasperserver 4.5.0 Pro を使用しています。いくつかの追加機能用にカスタム データ ソースを開発しました。このカスタム DS を使用するすべてのレポートは適切に実行され、手動で実行すると正しい出力が表示されます。ただし、Jasper のレポート ジョブ スケジューラを使用して同じレポートをスケジュールすると、セッションの開始に問題が発生し、レポートが実行されません。
これについて少し説明させてください。
- レポートを手動で実行する場合 -
カスタム DS の一部として、次の 2 つの xml を更新する必要がありました -
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>
- レポートのジョブスケジューリングの場合:スケジューラを使用して上記と同様に実装したい。調査中に、スケジューラ フローを分析し、変更を適用しようとしましたが、今のところうまくいきません。スケジューラを介してレポートを実行するために使用されるフローを教えてください。また、上記のカスタム DS を構成する場所を推奨してください。