我正在一个使用贾斯珀报告的应用程序工作。它与莫哈拉一起使用Primefaces,并部署在码头。当我在本地部署应用时,它确实可以正常工作。但是当我在赫鲁库部署时,它不起作用。
当我把它部署到赫鲁库时,我得到:
HTTP错误500
访问/clients.pdf时出现问题。原因:
Server Error Caused by:
java.io.ObjectInputStream$PeekInputStream.read(ObjectInputStream.java:2310)和java.io.ObjectInputStream$Peek InputStream.readFully(ObjectnPutStream.java:2323)和java.io.Object InputStream$BlockDataInputStream。readShort(ObjectImputStream.java:2794)以及java.io.ObjectImput Stream.readStreamHeader(ObjectOutStream.java:801)上的java.lang.NullPointerException。(ObjectInputStream.java:299)在net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream(ContextClassLoaderObjectInputStream.java:58)在net.sf.jasperReport.engine.util.JRLoader.loadObject(jrloard.java:244)在net.sf.jasperreports.enginee.util.jrloaderObjectObject(jreloader.java:229)在net.sf.jasperreports.engine.jasperUnmanager.runToPdfStream(jasperunmanager.java:201)在co.qcsc.spatha.web.servlet.ReportServlet.generateReport(reportServelet.java:72)在co.qcsc.spatha.web.servlet.com在co.qcsc.spath.web.servlet.ReportServlet.processRequest(report servlet.java:37)上(ReportServlet.java:25)在javax.servlet.http.HttpServlet.服务(HttpServlet.java:735)在java.servlet.http.HttpServlet.service(http servlet.java:848)在org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:598)在org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(openentityManagernviewFilter.java:180)在org.spring.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107),在org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFiler(ServletHandler.java:1338)在org.eclipse.jetty.server.handler.ScopedHandler.handle(scopedAndler.java:119)位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandle.java:231)位于org.eclipse.jetty.server.handler.ContextHandler.doHandler(ContextHandlerJava:1065)位于org/eclipse(ServletHandler.java:413)在org.eclipse.jetty.server.session.SessionHandler.doScope(sessionHandlerjava:192)在org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandlerCollection.java:999)在org.eclipse.jetty.server.handler.ScopedHandler.handler(scopedHandlerJava:117)在org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)位于org.eclipses.jetty.server.handler.handlerrapprapper.hande(handler-wrapper.java:111)位于org.eclipse.jetty.server.server.handler(server.java:350),位于org.eclipse.jettyServer.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:890)在org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944)在org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:630),在org.eclipse.jetty.server.AsyncHttpConnect.handle(AsynchttpConnections.java:77)在org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:620)在org.eclipses.jetty.io.nio.selectionChannelEndEndpoint$1.run(SelECTChannelEndendpoint.java:46)在org.eclipse.jetty.util.thread.QueuedtThreadPool.runJob(QueuedThreadPool.java:603)在组织.eclipse.jetty.util.thread.ThreadPool3.run运行
发送pdf报告的代码如下:
public class ReportServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
generateReport(request, response);
}
public void generateReport(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Connection connection;
InputStream reportStream =getServletConfig().getServletContext().getResourceAsStream(
"/resources/reports/index.jasper");
ServletOutputStream servletOutputStream = response.getOutputStream();
try {
Class.forName("org.postgresql.Driver");
connection = DriverManager.getConnection(
"jdbc:postgresql://localhost:5432/sid", "sid",
"sid");
response.setContentType("application/pdf");
JasperRunManager.runReportToPdfStream(reportStream, servletOutputStream, new HashMap(),
connection);
connection.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (JRException e) {
e.printStackTrace();
}
servletOutputStream.flush();
servletOutputStream.close();
}
在c.xhtml中:
...
<h:form id="reportForm">
<p:commandButton value="Generate Report" id="generate_report"
oncomplete="reportDialogWidget.show()"/>
</h:form>
<p:dialog id="reportDialog" modal="true" widgetVar="reportDialogWidget" dynamic="true" resizable="true" maximizable="true" showEffect="fade" hideEffect="explode">
<iframe src="/clients.pdf" width="800" height="600"></iframe>
</p:dialog>
...
与 Web 中的此 servlet 相关的部分.xml:
<servlet>
<servlet-name>ReportServlet</servlet-name>
<servlet-class>com.jg.servlet.ReportServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ReportServlet</servlet-name>
<url-pattern>/clients.pdf</url-pattern>
</servlet-mapping>
我一直在寻找,但我没有找到任何对我有帮助的东西。我认为这是信息足以得到一些帮助,但如果我缺少什么,请告诉我,我会添加任何需要的东西。
提前感谢您阅读我的问题。
这句话的意思是:
InputStream reportStream =getServletConfig().getServletContext().getResourceAsStream(
"/resources/reports/index.jasper");
将资源作为流获取时,必须确保资源存在。赫鲁库可能没有找到它。检查它是否也已提交,或者最好在使用之前在 reportStream 上检查空指针异常。
我正在与Jaspersoft Studio开发一些报告 我有一个web应用程序,它应该接受REST查询,并将它们转换为编译的报告 所以我包含了一些JasperReports jar: < li>groovy-all-2.0.1.jar < li>iText-2.1.7.js2.jar < li>jasperreports-5.2.0.jar 问题是当我编译我的报告并从Jaspersoft Stud
我使用的是Jaspersoft Studio版本6.3.0.final和JasperReports库版本6.3.0。我正在创建一个具有不同系列和类别值的折线图。我的问题是,在绘制图表时,我观察到,如果一个类别中没有某个特定系列的值,则线条会断开,并从下一个数据点重新开始。 是否有任何方法可以连接特定序列中的所有点,使其成为一条连续的单线,而不是虚线和点? 我用一个图像作为我得到和想要做的事情的示例
我正在尝试从servlet(viewcurrentstock.java)检索一个属性到jsp(viewstock.jsp)。这里有一个例外提示:“org.apache.jasper.JasperException:java.lang.NullPointerException” 查看当前股票。JAVA viewstock.jsp 服务器日志:
我的jsp有一个代码: 这是我的servlet: 当我点击登录按钮时,我有一个错误。 提前谢谢
我在生产服务器上部署了我的项目,并得到以下错误。 这是一个实时项目,所以,在出现错误后,我用运行良好的前一个版本替换了它,但现在它也抛出了相同的错误。请告诉我有什么问题? 错误: InExpage。jsp:
我为在线DVD商店创建了一个EJB应用程序。我使用Netbean 7.2.1和Glassfish 3.1.2当我运行index.jsp时,它的界面启动成功,如果我单击表单提交按钮,我会收到此错误: 在Netbean中,我得到了这个错误: 我创建了一个JavaEE企业应用程序。我有项目ejb和项目战争。因为我无法直接从ejb创建SessionBean,所以我创建了一个新的项目/Java库类,并在那里