#spring #grails #jasper-reports #context.xml
#spring #grails #jasper-отчеты #context.xml
Вопрос:
Я использую отчеты Jasper для своего веб-приложения на основе Grails, и у меня есть ReportingContext.xml который имеет компоненты для каждого отчета, такие как сопоставление идентификатора / имени отчета с шаблоном отчета (jrxml). Мне нужно знать основные шаги по настройке и настройке XML-файлов контекста и как загружать их в мой reportscontroller при запуске приложения.
Старое приложение было на java / j2ee, которое использовало этот отчет xml. Мы должны разработать аналогичную систему для grails.
Большая часть контекста содержит jrxml для сопоставления имен отчетов, но я не могу понять некоторые компоненты в контексте.
Вот пример содержимого отчета context.xml , для 1 отчета
<beans>
<!-- ========================= REPORTING SERVICE WRAPPER ========================= -->
<bean parent="baseTransactionProxy" name="myReportingService">
<property name="proxyInterfaces" value="com.pack.my.reporting.service.myReportingService"/>
<property name="transactionAttributes">
<property name="target">
<bean parent="baseServiceSupport" class="com.pack.my.reporting.service.impl.myReportingServiceImpl">
<property name="reportManager" ref="reportManager"/>
<property name="mySecurityService" ref="mySecurityService"/>
<property name="businessUnitService" ref="businessUnitService"/>
</bean>
</property>
</bean>
<bean class="com.pack.my.reporting.manager.impl.ReportManagerImpl" id="reportManager">
<property name="reportRenderers">
<map>
<entry key="JasperPrint">
<entry key="siemJasperPrint">
</map>
</property>
<property name="reportDefinitionDao" ref="reportDefinitionDao"/>
<property name="reportDao" ref="reportDao"/>
<property name="sequenceGeneratorService" ref="sequenceGeneratorService"/>
<property name="reportLocation" value="file:${my_HOME}/reports"/>
<property name="reportDefinitions">
<map>
<entry key="businessUnitRoles">
<ref local="businessUnitRoles"/>
</entry>
<entry key="businessUnitRoleUsers">
<ref local="businessUnitRoleUsers"/>
</entry>
</map>
</property>
<property name="parameterPromptCodeMap">
<bean class="org.apache.commons.collections.map.CaseInsensitiveMap">
<constructor-arg>
<map>
<entry value="1" key="businessUnit"/>
<entry value="1" key="businessUnitKey"/>
<entry value="2" key="globaluser"/>
<entry value="2" key="USERID"/>
<entry value="2" key="USER_ID"/>
<entry value="2" key="GLOBALUSERKEY"/>
<entry value="3" key="identityCertification"/>
<entry value="3" key="CERTIFICATIONID"/>
<entry value="3" key="CERTIFICATION_ID"/>
<entry value="4" key="startDate"/>
</map>
</constructor-arg>
</bean>
</property>
</bean>
<!--- Report Groups Business Unit reports Group 1 Users reports -->
<bean class="com.pack.my.reporting.domain.ReportDefinition" id="businessUnitRoles">
<property name="reportName" value="Business Unit Roles Report"/>
<property name="reportFiles">
<map>
<entry value="BusinessUnitRoles.jrxml" key="JasperPrint"/>
</map>
</property>
<property name="promptForBusinessUnit" value="true"/>
<property name="reportGroup" value="1"/>
<property name="displayName" value="report.businessUnitRoles.name"/>
<bean class="com.pack.my.reporting.domain.ReportDefinition" id="businessUnitUsers">
</bean>
</beans>
Ответ №1:
- Добавление зависимостей в grails-app/conf/BuildConfig.groovy
- Скопируйте приведенный выше файл в /grails-app/conf/spring/resources.xml
- Прочитайте Grails и Spring — справочную документацию
resources.xml больше не создается по умолчанию, так как в spring dir существует только resources.groovy. Просто скопируйте файл контекста spring в resources.xml .
Комментарии:
1. Спасибо за подсказки, у меня есть resources.groovy, который сейчас пуст, я думаю, я могу загрузить туда xml или просто resources.xml там?… Спасибо, Приянк