Java 编译JasperReport时发生与XML相关的异常

Java 编译JasperReport时发生与XML相关的异常,java,maven,jasper-reports,Java,Maven,Jasper Reports,我在编译jasper报告时遇到此异常,异常为: net.sf.jasperreports.engine.JRException: org.xml.sax.SAXException: http://java.sun.com/xml/jaxp/properties/schemaSource at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:247) at net.sf.jasperreports.engin

我在编译jasper报告时遇到此异常,异常为:

net.sf.jasperreports.engine.JRException: org.xml.sax.SAXException: http://java.sun.com/xml/jaxp/properties/schemaSource
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:247)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:230)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:218)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:172)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:156)
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:143)
at com.mhveranga.siripathi.utill.ReportGenerator.generateOrderInvoice(ReportGenerator.java:50)
at com.mhveranga.siripathi.utill.ReportGenerator.main(ReportGenerator.java:79)
Caused by: org.xml.sax.SAXException: http://java.sun.com/xml/jaxp/properties/schemaSource
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1197)
at org.apache.commons.digester.Digester.parse(Digester.java:1647)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243)
... 7 more
这是我的XML文件:

<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="order" language="groovy" pageWidth="595" pageHeight="842" whenNoDataType="AllSectionsNoDetail" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" whenResourceMissingType="Empty">
    <property name="ireport.zoom" value="1.0"/>
    <property name="ireport.x" value="0"/>
    <property name="ireport.y" value="294"/>
    <parameter name="custID" class="java.lang.String"/>
    <parameter name="custContact" class="java.lang.String"/>
    <parameter name="custName" class="java.lang.String"/>
    <parameter name="custAddress" class="java.lang.String"/>
    <parameter name="orderID" class="java.lang.String"/>
    <parameter name="mobileBrand" class="java.lang.String"/>
    <parameter name="mobileModel" class="java.lang.String"/>
    <parameter name="mobileIMEI" class="java.lang.String"/>
    <parameter name="isBattery" class="java.lang.String"/>
    <parameter name="isCharger" class="java.lang.String"/>
    <parameter name="isSIM" class="java.lang.String"/>
    <parameter name="isMemory" class="java.lang.String"/>
    <parameter name="description" class="java.lang.String"/>
    <parameter name="note" class="java.lang.String"/>
    <parameter name="date" class="java.lang.String"/>
    <background>
        <band/>
    </background>
    <title>
        <band height="84">
            <staticText>
                <reportElement x="123" y="21" width="297" height="33"/>
                <textElement>
                    <font size="22" isBold="true"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[SIRIPATHI PHONE CENTER]]></text>
            </staticText>
            <line>
                <reportElement x="63" y="54" width="404" height="1"/>
            </line>
        </band>
    </title>
    <pageHeader>
        <band height="109">
            <staticText>
                <reportElement x="203" y="0" width="144" height="20"/>
                <textElement textAlignment="Center">
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Mahawaththe, Batapola]]></text>
            </staticText>
            <staticText>
                <reportElement x="224" y="20" width="103" height="21"/>
                <textElement>
                    <font size="16" isBold="true"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[077 600 1233]]></text>
            </staticText>
            <staticText>
                <reportElement x="203" y="77" width="157" height="20"/>
                <textElement>
                    <font size="12" isBold="true"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Software/Hardware/Unlock]]></text>
            </staticText>
            <staticText>
                <reportElement x="27" y="47" width="505" height="30"/>
                <textElement textAlignment="Center">
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[We repair all types of mobile phones in Siripathi Phone Center and we will guarantee all our repairs to be free of defects.]]></text>
            </staticText>
        </band>
    </pageHeader>
    <columnHeader>
        <band height="36"/>
    </columnHeader>
    <detail>
        <band height="512">
            <staticText>
                <reportElement x="38" y="50" width="78" height="23"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Customer ID : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="119" width="90" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Customer Name : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="84" width="100" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Customer Contact : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="152" width="100" height="18"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Customer Address : ]]></text>
            </staticText>
            <line>
                <reportElement x="38" y="193" width="465" height="1"/>
            </line>
            <staticText>
                <reportElement x="38" y="213" width="62" height="16"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Order ID : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="244" width="100" height="17"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Mobile Brand : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="276" width="100" height="18"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Mobile Model : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="307" width="78" height="17"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Mobile IMEI : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="340" width="58" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Battery : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="170" y="340" width="56" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Charger : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="297" y="340" width="41" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[SIM : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="410" y="340" width="50" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Memory : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="372" width="78" height="16"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Description : ]]></text>
            </staticText>
            <staticText>
                <reportElement x="38" y="445" width="58" height="16"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Note : ]]></text>
            </staticText>
            <textField>
                <reportElement x="148" y="50" width="355" height="23"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{custID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="84" width="355" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{custContact}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="119" width="355" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{custName}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="152" width="355" height="18"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{custAddress}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="213" width="355" height="16"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{orderID}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="244" width="355" height="17"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{mobileBrand}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="276" width="355" height="18"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{mobileModel}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="148" y="307" width="355" height="17"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{mobileIMEI}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="96" y="340" width="48" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{isBattery}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="227" y="340" width="42" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{isCharger}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="338" y="340" width="46" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{isSIM}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="460" y="340" width="52" height="19"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{isMemory}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="144" y="372" width="388" height="54"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{description}]]></textFieldExpression>
            </textField>
            <textField>
                <reportElement x="144" y="445" width="388" height="53"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{note}]]></textFieldExpression>
            </textField>
            <staticText>
                <reportElement x="38" y="14" width="78" height="23"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <text><![CDATA[Date :]]></text>
            </staticText>
            <textField>
                <reportElement x="148" y="17" width="355" height="20"/>
                <textElement>
                    <font size="12"/>
                    <paragraph lineSpacing="Single"/>
                </textElement>
                <textFieldExpression><![CDATA[$P{date}]]></textFieldExpression>
            </textField>
        </band>
    </detail>
    <columnFooter>
        <band height="9"/>
    </columnFooter>
    <pageFooter>
        <band height="9"/>
    </pageFooter>
    <summary>
        <band height="8"/>
    </summary>
</jasperReport>

为了解决这个问题,我做了很多努力,但是我找不到合适的支持。如果你对此有任何想法,请帮助我。谢谢。

我试了几天才发现这个问题

最初的问题是,我已经将jasperreports所依赖的依赖项逐个手动添加到我的pom中,我不必这样做。然后是冲突。只有jasperreports和groovy依赖项就足够了。如果不使用groovy,也不必添加它

但后来jasperreport说,即使我通过参数传递数据,文档也没有页面。那是因为我没有用过

JasperPrint jp = JasperFillManager.fillReport(jr, param, new JREmptyDataSource());
而不是

JasperPrint jp = JasperFillManager.fillReport(jr, param);

JasperReports没有足够的社区支持,我必须自己解决这个问题。无论如何,我建议JasperReports库应该得到很大的改进。

您可以使用Eclipse的iReports插件来验证您的XML文件吗?我会尝试一下。但有可能是我用designer创建的无效xml文件吗?似乎和你的案子有关。如果这不起作用,那么尝试生成一个空报告。如果这不起作用,那么您的问题不是由于模板,而是其他原因。您好,您的报告中似乎没有任何问题。我可以在Jaspersoft Studio 6.0.1(JDK 1.8.0_11)中编译它,并部署到Jasper Server 5.6.0
JasperPrint jp = JasperFillManager.fillReport(jr, param, new JREmptyDataSource());
JasperPrint jp = JasperFillManager.fillReport(jr, param);