Как реализовать Dynamic Jasper как статический модуль JBoss AS 7.2?

Я успешно реализовал Jasper Report как модуль, но несколько раз терпел неудачу при реализации DynamicJasper.

Я пробую эту реализацию с JBoss AS 7.2, ядром Linux CentOS 2.6.32-431.el6.x86_64 и Java 1.7.

Ниже приведен файл module.xml, который я создал.

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="other.tool.dynamicJasper">
  <resources>
    <resource-root path="DynamicJasper-5.0.11.jar"/>
  </resources>
  <dependencies>
    <module name="net.sf.jasper.reports"/>
    <module name="org.apache.commons.logging" />
    <module name="org.apache.commons.collections" />
    <module name="org.apache.commons.beanutils" />
    <module name="org.eclipse.jdt" export="true"/>
    <module name="com.lowagie.itext" />
    <module name="org.apache.poi" />
    <module name="org.apache.commons.digester" />
    <module name="org.jfree.chart" />
    <module name="javax.api"/>
    <system export="true">
      <paths>
        <path name="net/sf/jasper/reports"/>
      </paths>
    </system>
  </dependencies>
  <properties>
    <property name="net.sf.jasperreports.compiler.keep.java.file" value="true"/>
    <property name="net.sf.jasperreports.compiler.classpath" value="/usr/share/jboss-as-7-new/modules-agci/net/sf/jasper/reports/main/jasperreports-5.2.0.jar"/>
  </properties>
</module>

Это module.xml для отчета Jasper.

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="net.sf.jasper.reports">
  <resources>
    <resource-root path="jasperreports-5.2.0.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="org.apache.commons.logging"/>
    <module name="org.apache.commons.collections"/>
    <module name="org.apache.commons.digester"/>
    <module name="org.apache.commons.beanutils"/>
    <module name="org.eclipse.jdt" export="true"/>
    <module name="net.sf.jasper.reports.fonts" export="true"/>
    <module name="com.lowagie.itext"/>
    <module name="other.fonts.arial"/>
    <module name="other.fonts.times"/>
  </dependencies>
  <properties>
    <property name="net.sf.jasperreports.compiler.keep.java.file" value="true"/>
    <property name="net.sf.jasperreports.compiler.classpath" value="/usr/share/jboss-as-7-new/modules-agci/net/sf/jasper/reports/main/jasperreports-5.2.0.jar"/>
  </properties>
</module>

Сообщение об ошибке, которое я всегда получаю,

Errors were encountered when compiling report expressions class file:
/usr/share/jboss-as-7-new/DJR_9154_1554455135225_288300.java:4: error: package net.sf.jasperreports.engine does not exist

Когда я отслеживал его с помощью top, я увидел, что javac выполнено.


person Dwi Santoso    schedule 08.04.2019    source источник


Ответы (1)


В конце концов, мне удалось найти ответ. Основной причиной является конфликт, созданный jasper-compiler-jdt-5.5.15.jar с ecj-3.7.2.jar из модуля org.jboss.as.web.

Решение

  • Я объединил оба JAR и назвал его eclipse-combined-jdt-1.0.0.jar.
  • Я пересмотрел module.xml из org.jboss.as.web и net.sf.jasper.reports

Редакция org.jboss.as.web является

<resources>
  <resource-root path="jboss-as-web-7.2.0.Final.jar" />        
  <resource-root path="jbossweb-7.2.0.Final.jar" />        
  <resource-root path="eclipse-combined-jdt-1.0.0.jar" />
</resources>

Редакция net.sf.jasper.reports является

    <dependencies>
      <module name="javax.api"/>
      <module name="org.apache.commons.logging"/>
      <module name="org.apache.commons.collections"/>
      <module name="org.apache.commons.digester"/>
      <module name="org.apache.commons.beanutils"/>
      <module name="net.sf.jasper.reports.fonts" export="true"/>
      <module name="com.lowagie.itext"/>
      <module name="other.fonts.arial"/>
      <module name="other.fonts.times"/>
      <module name="org.jfree.chart"/>
      <module name="org.jboss.as.web">
        <imports>
          <include-set>
            <path name="org/eclipse/jdt/internal/compiler" />
          </include-set>
        </imports>
      </module>
    </dependencies>
person Dwi Santoso    schedule 15.04.2019