Jump to content

Error in getting parameters' names from jrxml


linuxapple

Recommended Posts

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 more
Exception in thread "main"

 

Any suggestion will be greatly appreciated!

 

Shuaibing

Post edited by: linuxapple, at: 2007/05/02 05:45

Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

It was fixed by using JRXmlLoader

Code:
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...