Подключение компонентов spring через пользовательский контекст отчетности в grails

#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:

  1. Добавление зависимостей в grails-app/conf/BuildConfig.groovy
  2. Скопируйте приведенный выше файл в /grails-app/conf/spring/resources.xml
  3. Прочитайте Grails и Spring — справочную документацию

resources.xml больше не создается по умолчанию, так как в spring dir существует только resources.groovy. Просто скопируйте файл контекста spring в resources.xml .

Комментарии:

1. Спасибо за подсказки, у меня есть resources.groovy, который сейчас пуст, я думаю, я могу загрузить туда xml или просто resources.xml там?… Спасибо, Приянк