JasperNewBee Posted June 15, 2007 Share Posted June 15, 2007 Hi, I am trying to generate PDF reports using the Jasper Reports on the weblogic server through Eclipse.I'm using Struts 1_0. And I have jasperreports-1.3.1.jar, itext-1.4.8.jar and the required commons jar files too. I'm getting exception when I run as a webapplication on the Weblogic Server [java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException]. But it works when I run it as process and even it works when I have just regular core java classes to generate PDF through main. Can you please help me why this doesn't work when I run it on the Weblogic Server even after having the required jar files on the class path. logs:<Jun 15, 2007 12:00:33 PM EDT> <Error> <HTTP> <BEA-101046> <[servletContext(id=21807947,name=testingJasperReports,context-path=/testingJasperReports)] action: Dispatch[/reports] to method generateReports returned an exceptionjava.lang.reflect.InvocationTargetException 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:324) at org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.java:1787) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1586) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:510) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:971) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:402) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6350) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:118) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3635) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2585) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)Caused by: java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException at com.testingJasperReports.SummaryReportModel.createReport(SummaryReportModel.java:77) at com.testingJasperReports.actions.ReportGeneratorAction.generateReports(ReportGeneratorAction.java:98) ... 22 more> Link to comment Share on other sites More sharing options...
hamidreza7 Posted August 14, 2007 Share Posted August 14, 2007 I am having a similar problem. I get an error message when trying to run my applet (which compiles fine).I already put the proper jasperforge jar files in the classpath java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException Link to comment Share on other sites More sharing options...
csbac Posted August 14, 2007 Share Posted August 14, 2007 The question in both of your cases is, in which classpath did you put the jasperreports-*.jar? WebLogic is J2EE Server, so .jar(s) need to be- put into the .ear, and- either put into a <module> tag of the application.xml, or- explicitly referenced by the META-INF/MANIFEST.MF Class-Path: attribute of the using ejb jarAlternatively, there might be a server lib where it can be put ... I only use JBoss myself. With applets, I'm not sure, but very probably you didn't configure it right ... Hope this helps,Sebastian Link to comment Share on other sites More sharing options...
hamidreza7 Posted August 14, 2007 Share Posted August 14, 2007 I'm, admittedly, a total newB to jasperreports; so please forgive me. Foreword:By classpath I mean I changed the windows environment variable (for all users) called "CLASSPATH" to include the appropriate contents. Setup (works):I downloaded jasperreports and added the .jar files in 'dist' (jasperreports-1.3.4.jar) to the classpath, as well as some jars I needed in the 'lib' folder. I was able to use iReports just fine and created my jasper file. Problem:I compiled some java code which I'm running as an applet (maybe I should be doing this another way?) from my J2EE server. When I run the applet I get the error message that you see pasted below my code. JAVA CODE:Code:import java.util.HashMap;import net.sf.jasperreports.engine.JREmptyDataSource;import net.sf.jasperreports.engine.JRException;import net.sf.jasperreports.engine.JasperFillManager;public class FirstReportFill{ public static void main(String[] args) { try { System.out.println("Filling report..."«»); JasperFillManager.fillReportToFile("./FirstReport.jasper", new HashMap(), new JREmptyDataSource()); System.out.println("Done!"«»); } catch (JRException e) { e.printStackTrace(); } }} HTML PAGE:Code:[code]<html><head><title>Web Report</title></head><body>file:///C:/Sun/SDK/docs/about.html<br>http://localhost:8080/Test1/<br><APPLET CODE="FirstReportFill.class" WIDTH=100 HEIGHT=100></body></html> ERROR MESSAGE:java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRException at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.plugin.AppletViewer.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Feel free to make fun of me, once you figure out how ridiculously simply my problem probably is. Link to comment Share on other sites More sharing options...
csbac Posted August 14, 2007 Share Posted August 14, 2007 CLASSPATH environment variable does not help you with an applet, as the applet is running inside the browser in a highly restricted security context. But there is no reason to use an applet here ... If you are using a J2EE server, why not use JasperServer?Install JasperServer, read the guides, log in, and add the report you generated to the server, together with the required datasources. Then, you can run the report directly from the jasperserver. If you get this working, you can think about putting the reporting stuff into a server application of your own ... In any case, using an applet (which is executed on the clients and thus has neither access to the server-based report files, nor the server-based sql data) is not a good idea, unless you really know what you are doing, and need it.Usually, you want to generate the report on the server and send html code with nice input controls, forward/backward buttons, page numbering and pdf/excel export to the client's browser ... and this is exactly what JasperServer does (among many other things). Also, an applet does not use a main() function ... Hope this helps,Sebastian Link to comment Share on other sites More sharing options...
hamidreza7 Posted August 14, 2007 Share Posted August 14, 2007 Thank you so much. We ended up going with Tomcat for this solution, but I really appreciate your replies and help. Thanks again. I will keep JasperServer in mind and try it out when I get some free time. Link to comment Share on other sites More sharing options...
csbac Posted August 14, 2007 Share Posted August 14, 2007 Äh ... where do you see the difference between Tomcat and "JasperServer on Tomcat"? JS is not a standalone server, it is a web application that can be deployed on any servlet- or J2EE server, including tomcat. Sebastian Link to comment Share on other sites More sharing options...
sridhar1985 Posted March 19, 2009 Share Posted March 19, 2009 Hi All, I am new to Jasper. I have installed jasper server along with ireport and Tomcat. I want use these things against Weblogic server. Any thing need to change on weblogic server side for Japser reports and jasper 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