Java IllegalArgumentException:当使用对象数组作为SCHEMA_源属性的值时,两个架构不应共享同一个targetNamespace
我正在使用JasperReport/ireport4, 我试图生成一份报告,如下所示Java IllegalArgumentException:当使用对象数组作为SCHEMA_源属性的值时,两个架构不应共享同一个targetNamespace,java,jasper-reports,ireport,xerces,jaxp,Java,Jasper Reports,Ireport,Xerces,Jaxp,我正在使用JasperReport/ireport4, 我试图生成一份报告,如下所示 public void fillReport() throws ParseException, groovyjarjarcommonscli.ParseException, IOException { try { Driver monDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(mo
public void fillReport() throws ParseException, groovyjarjarcommonscli.ParseException, IOException {
try {
Driver monDriver = new com.mysql.jdbc.Driver();
DriverManager.registerDriver(monDriver);
connection = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/MyDB","", "");
Map mymap = new HashMap();
mymap.put("Title", MyTitle);
mymap.put("legend", legend);
mymap.put("SQL", Query());
FacesContext facesContext = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
InputStream reportStream = facesContext.getExternalContext().getResourceAsStream("C:/Documents and Settings/report2.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
facesContext.responseComplete();
response.setContentType("C:/Documents and Settings/report2.pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, mymap, connection);
connection.close();
servletOutputStream.flush();
servletOutputStream.close();
} catch (JRException e) {
e.printStackTrace();}
}
但是发生了一个错误
Caused by: java.lang.IllegalArgumentException: When using array of Objects as the value of SCHEMA_SOURCE property , no two Schemas should share the same targetNamespace.
at org.apache.xerces.impl.xs.XMLSchemaLoader.processJAXPSchemaSource(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown Source)
at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.commons.digester.Digester.parse(Digester.java:1647)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:241)
at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:228)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:216)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:170)
at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:154)
at DAOKPI.Bean.fillReport(Bean.java:1139)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.invokeMethod(BeanELResolver.java:737)
at javax.el.BeanELResolver.invoke(BeanELResolver.java:467)
at javax.el.CompositeELResolver.invoke(CompositeELResolver.java:254)
at com.sun.el.parser.AstValue.invoke(AstValue.java:228)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:148)
... 34 more
这是我的图书馆
类路径中是否有xerces.jar?因为JasperReports已经有了一个版本,如果您有一个旧版本,那么可能会有冲突。如果是这样的话,请尝试仅使用JR.提供的一个,以帮助任何使用maven遇到此错误的人: 找出哪个依赖项依赖于
xercesImpl.jar
,并在POM中为给定依赖项添加排除项,如下所示:
...
薛西斯
干细胞移植
在我的例子中,麻烦制造者依赖项是jts
,因此我的依赖项声明现在看起来是这样的:
com.com解决方案
jts
1.11
薛西斯
干细胞移植
如果您使用的是m2eclipse,您可以在POM编辑器的dependency Hierarchy选项卡上找到导入的依赖项
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.6.0</version>
</dependency>
薛西斯
干细胞移植
2.6.0
使用maven添加此依赖项。它会解决问题。,您好,我已经下载了JasperReport4.0,他们的版本不是xerces.jar,但我找到的是xercesImpl-2.7.0.jar!你能发布你在项目中使用的所有库吗?有一个不同版本或类似版本的库肯定会有问题,它是有效的。谢谢。我的是net.sf.jimemagic dependency