0
votes

My application based on several jar files: login.jar, mainform.jar, reportview.jar.
The login jar calls mainform.jar and it'll call report view.jar likewise.

So in reportview class i have a method for showing report with JasperViewer:

reportSource = Reportpath + getReportname() + ".jasper";

HashMap para = new HashMap();
para.put(getReport_param1(), getParam1());
para.put(getReport_param2(), getParam2());
para.put(getReport_param3(), getParam3());
para.put(getReport_param4(), getParam4());
para.put(getReport_param5(), getParam5());

JasperPrint jp = JasperFillManager.fillReport(reportSource, para, con);

JasperViewer.viewReport(jp, false);

So as single project its run 100% correctly and view report.

But when i'm import this class to mainform and call reportview method it didn't run. I used jasperreports-3.1.4.jar file for JasperReports library. It work fine when calls report module by its main methos.
But when calling from different jar it gives this error.

java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseTextField to field net.sf.jasperreports.engine.base.JRBaseLineBox.boxContainer of type net.sf.jasperreports.engine.JRBoxContainer in instance of net.sf.jasperreports.engine.base.JRBaseLineBox at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2032) at java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1212) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1953) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at java.util.ArrayList.readObject(ArrayList.java:593) 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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:85) at net.sf.jasperreports.engine.util.JRLoader.loadObjectFromLocation(JRLoader.java:244) at net.sf.jasperreports.engine.fill.JRFillSubreport.evaluate(JRFillSubreport.java:316) at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:275) at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:399) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:1300) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:631) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:228) at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:730) at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:632) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:63) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:402) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:234) at reportmodule.Reportmodule.getReport(Reportmodule.java:329) at Login.Login$7.run(Login.java:344)

Please help me to solve this problem.

1
Please help me.. Tell me if you guys need any clarification.Dilshan
Finally I found error. Its because of some other project(mainform.jar) is import old version jasper library(1.2). removing that library from mainform solved my problem. Thanks all for view my problem.Dilshan
You can post this comment as an answerAlex K

1 Answers

0
votes

Finally I found error. Its because of some other project(mainform.jar) is import old version jasper library(1.2). removing that library from mainform solved my problem.