In portlet’s .jsp page I connect an applet, and after this it throws Exception
Portlet system is Liferay
“‘Name of portlet’ is temporarily unavailable.” shows on the page.
html/jsp code for applet:
<APPLET name="SignApplet" mayscript code="SignApplet.class"
archive="<%=renderResponse.encodeURL(renderRequest.getContextPath() + "/lib/SignApplet.jar")%>,
<%=renderResponse.encodeURL(renderRequest.getContextPath() + "/lib/crypto.tsp.jar")%>,
<%=renderResponse.encodeURL(renderRequest.getContextPath() + "/lib/crypto.gammaprov.jar")%>"
height=500 width=500 style="display:none;">
<PARAM NAME="file" VALUE="<%
byte[] array = (byte[])session.getAttribute("downloadedFile");
out.print(new String(array));
%>" />
</APPLET>
jsp’s name is LoadXLS.
Here is log:
ApplicationDispatcher[/ExecutePortlet] PWC1231: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at java.lang.String.<init>(String.java:602)
at org.apache.jsp.WEB_002dINF.jsp.LoadXLS_jsp._jspService(LoadXLS_jsp.java:232)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:113)
...
04:18:44,421 ERROR [PortletRequestDispatcherImpl:137] org.apache.jasper.JasperException: java.lang.NullPointerException
org.apache.jasper.JasperException: java.lang.NullPointerException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:113)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilter.doFilter(InvokerFilter.java:70)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at org.apache.catalina.core.ApplicationDispatcher.doInvoke(ApplicationDispatcher.java:785)
...
04:18:44,421 ERROR [PortletServlet:97] javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.NullPointerException
javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.NullPointerException
at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:139)
at com.test.ExecutePortlet.doView(ExecutePortlet.java:249)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:72)
...
ApplicationDispatcher[/ExecutePortlet] PWC1231: Servlet.service() for servlet ExecutePortlet Servlet threw exception
javax.portlet.PortletException: org.apache.jasper.JasperException: java.lang.NullPointerException
at com.liferay.portlet.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:139)
at com.test.ExecutePortlet.doView(ExecutePortlet.java:249)
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328)
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233)
at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:100)
at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:64)
at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1539)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
...
04:18:44,437 ERROR [render_portlet_jsp:154] java.lang.NullPointerException
at java.lang.String.<init>(String.java:602)
at org.apache.jsp.WEB_002dINF.jsp.LoadXLS_jsp._jspService(LoadXLS_jsp.java:232)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:403)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:492)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:378)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
...
From the stacktrace it seems you’re using tomcat – a nice way to find the actual location of that NullpointerException in Tomcat is to go to the intermediary code that the JSP-Compiler generates, typically in tomcat’s work folder – go to tomcat/work/Catalina/localhost/your-web-app-name/org/apache/jsp/… and locate the Java code generated from your JSP in there (from the stacktrace, it’s named LoadXLS_jsp.java. (“Catalina/localhost” is the default folder – might be different in your setup)
The stacktrace says, that the NullpointerException occurs in line 232 (
at org.apache.jsp.WEB_002dINF.jsp.LoadXLS_jsp._jspService(LoadXLS_jsp.java:232)
) – while the whole file is machine-generated and not well readable, it should be quite simple to map it back to the original JSP.My bet is – as dragon66 says in the comment to your question – session.getAttribute(“downloadedFile”) is null, thus the constructor that you use in
out.print(new String(array));gets a null value passed. The lineat java.lang.String.<init>(String.java:602)tells you that the String constructor is where the NullpointerException is caused, but the next line – e.g. the calling method – tells you where the string constructor is called.