linuxapple Posted May 2, 2007 Share Posted May 2, 2007 Hi All, I need to get parameters' name and values from jrxml file, I've searched the posted topic, but found nothing I can learn from. Following are two ways that I tried to get it:Code:JasperDesign jasperDesign =new JasperDesign(); // using JasperReport JasperReport jr=JasperManager.loadReport(fileName); if(jr!=null){ JRParameter jrp[]=jr.getParameters(); }It coursed a JRException:Code:[code]net.sf.jasperreports.engine.JRException: Error loading object from file : D:developmenttest.jrxml at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:64) at net.sf.jasperreports.engine.JasperManager.loadReport(JasperManager.java:989) at com.favorit.report.JRxmlTemplate.hasParameter(JRxmlTemplate.java:35) at com.favorit.report.JRxmlTemplate.main(JRxmlTemplate.java:54)Caused by: java.io.StreamCorruptedException: invalid stream header at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:737) at java.io.ObjectInputStream.<init>(ObjectInputStream.java:253) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87) ... 4 more The other is:Code:[code]//using JasperDesign jasperDesign = JasperManager.loadXmlDesign(fileName); List list=jasperDesign.getParametersList(); if(list!=null){ for(int i=0;i<list.size();i++){ System.out.println("name of parameter:"+((JasperReport)list).getName()); b=true; } }while it coursed: Code:[code]net.sf.jasperreports.engine.JRException: org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration. at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:242) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:225) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:213) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:167) at net.sf.jasperreports.engine.xml.JRXmlLoader.load(JRXmlLoader.java:151) at net.sf.jasperreports.engine.JasperManager.loadXmlDesign(JasperManager.java:971) at com.favorit.report.JRxmlTemplate.hasParameter(JRxmlTemplate.java:40) at com.favorit.report.JRxmlTemplate.main(JRxmlTemplate.java:54)Caused by: org.xml.sax.SAXParseException: Valid documents must have a <!DOCTYPE declaration. at org.apache.crimson.parser.Parser2.warning(Parser2.java:3342) at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:658) at org.apache.crimson.parser.Parser2.parse(Parser2.java:337) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at org.apache.commons.digester.Digester.parse(Digester.java:1647) at net.sf.jasperreports.engine.xml.JRXmlLoader.loadXML(JRXmlLoader.java:238) ... 7 moreException in thread "main" Any suggestion will be greatly appreciated! ShuaibingPost edited by: linuxapple, at: 2007/05/02 05:45 Link to comment Share on other sites More sharing options...
linuxapple Posted May 2, 2007 Author Share Posted May 2, 2007 It was fixed by using JRXmlLoaderCode:jasperDesign=JRXmlLoader.load(fileName); List list=jasperDesign.getParametersList(); if(list!=null){ for(int i=0;i<list.size();i++){ System.out.println("size="+list.size()); System.out.println("name of parameter:"+((JRParameter)list.get(i)).getName()); b=true; } } Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now