Jasper reports Jaspersoft Studio在为报表更改数据适配器时添加uuid

Jasper reports Jaspersoft Studio在为报表更改数据适配器时添加uuid,jasper-reports,ireport,jaspersoft-studio,Jasper Reports,Ireport,Jaspersoft Studio,我目前正在从iReport 4.5.1迁移到Jaspersoft Studio 5.5。我注意到,当我在Jaspersoft Studio中更改数据适配器时,它会将uuid标记添加到报告的XML中 我与不同的数据库有不同的连接,但我讨厌进入记事本++从XML中去掉uuid=“…”。为什么我在更改报表使用的数据适配器时总是出现此错误 我最初研究了这个问题,当我更改报告的连接(从开发数据库查看到登台数据库)时,它为一个连接工作,但它将uuid放回了报告中。当我在开发中测试报表时,我删除了uuid,它

我目前正在从iReport 4.5.1迁移到Jaspersoft Studio 5.5。我注意到,当我在Jaspersoft Studio中更改数据适配器时,它会将
uuid
标记添加到报告的XML中

我与不同的数据库有不同的连接,但我讨厌进入记事本++从XML中去掉
uuid=“…”
。为什么我在更改报表使用的数据适配器时总是出现此错误


我最初研究了这个问题,当我更改报告的连接(从开发数据库查看到登台数据库)时,它为一个连接工作,但它将
uuid
放回了报告中。当我在开发中测试报表时,我删除了
uuid
,它就工作了,当我更改为在暂存中测试报表时,它会将它们放回原处

Error loading the report template


Message:
    net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException: cvc-     complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element 'jasperReport'.
Level:
SEVERE
Stack Trace:
org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed  to appear in element 'jasperReport'.
    net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:247)
net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:230)
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:218)
com.jaspersoft.ireport.designer.JrxmlLoader.reloadJasperDesign(JrxmlLoader.java:87)
com.jaspersoft.ireport.designer.JrxmlVisualView.run(JrxmlVisualView.java:505)
org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)
cvc-complex-type.3.2.2: Attribute 'uuid' is not allowed to appear in element  'jasperReport'.
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:423)
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3188)
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2665)
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2072)
com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:711)
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400)
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626)
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3104)
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:921)
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
 com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
org.apache.commons.digester.Digester.parse(Digester.java:1892)
net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:243)
net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:230)
net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:218)
com.jaspersoft.ireport.designer.JrxmlLoader.reloadJasperDesign(JrxmlLoader.java:87)
com.jaspersoft.ireport.designer.JrxmlVisualView.run(JrxmlVisualView.java:505)
org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)
org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)

我认为UUID属性是在JasperReports 4.6.0中引入的。 因此,为了摆脱它,您应该将兼容模式设置为使用JasperReports 4.5.0。这是因为Jaspersoft Studio的每个新版本,甚至iReport,都使用JR库的最新版本

在Jaspersoft Studio中,您可以通过“窗口>首选项>Jaspersoft Studio”在全局级别设置兼容性模式,然后通过组合选择4.5.0版本。这将在工作区级别应用设置。 但是,您可以通过项目属性甚至文件属性自定义此信息。 这在常见用例中非常有用,您希望对所有报告使用最新的JR版本,但您有一个特定的报告,您希望符合“JR 4.5.0”

希望这能解决你的疑问和疑问

致以最良好的祝愿, 马西莫

附言:下面是配置页面的截图


我以前也遇到过同样的问题,解决方法是删除属性
uuid
要删除uuid问题,请将jasper report的最新版本更改为4.5.0版。它可以完美地工作,并从XML中删除所有uuid。

可能重复的&&I最初考虑过这个问题,当我更改报告的连接(从开发数据库查看到暂存数据库)时,它为一个连接工作,但将uuid放回报告中。当我在开发中测试报告时,我删除了uuid,它可以工作,当我更改为在暂存中测试报告时,它会将它们放回原处。有什么想法吗?