Seconding Edwin L, is there a working example of running a report from java? My reports run just fine from within JaspersoftStudio, but am getting the same NPE as described above by Kevin. Any help would be appreciated, Howard Here's some additional info, - I was able to trace the NPE to be in the WebServiceQueryExecuter.class, it tries to connect to the web service providing the data for the report. Based on the debugger, all of the urls and parameters for the web service are being pulled in correctly from the report file (.jasper). - To do the connection, it uses the method 'callWS' from the WebServiceConnector.class. This method returns a null, which then causes the exception quoted in the issue 'com.jaspersoft.webservice.data.query.WebServiceQueryExecuter.getInternalQE(WebServiceQueryExecuter.java:243)'. Here is the full stack trace, if that helps, SEVERE: Servlet.service() for servlet [PDFViewer] in context with path [/PCAReportViewer] threw exceptionjava.lang.NullPointerExceptionat com.jaspersoft.webservice.data.query.WebServiceQueryExecuter.getInternalQE(WebServiceQueryExecuter.java:243)at com.jaspersoft.webservice.data.query.WebServiceQueryExecuter.close(WebServiceQueryExecuter.java:200)at net.sf.jasperreports.engine.fill.JRFillDataset.closeQueryExecuter(JRFillDataset.java:1322)at net.sf.jasperreports.engine.fill.JRFillDataset.closeDatasource(JRFillDataset.java:1303)at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:608)at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:163)at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:474)at net.sf.jasperreports.engine.JasperFillManager.fillToFile(JasperFillManager.java:259)at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:746)at PDFViewer.doGet(PDFViewer.java:89)at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:506)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:962)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Unknown Source) Also, as a reference, here are the jar files that I've pulled into my servlet:commons-beanutils-1.9.0commons-collections-3.2.2commons-digester-2.1commons-logging-1.1.1customDatasource_WebService_JRS_wrappergroovy-all_2.4.5httpcore-4.3.3iText-2.1.7.js2jackson-annotations-2.4.3jackson-core-2.4.3jackson-databind-2.4.3jasperreports-6.3.1WebServiceDataAdapter