0

i work on jsp and i write this code:

<form action="processInfo.jsp">
    <input type="submit" name="Kill" value="Kill" />
</form>
<%
    String s = request.getParameter("Kill");
    if (s != null) {
        System.out.println("ok");
    }
%>

but this error has been appeared and i dpn't know why.

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/SystemMonitoring_v1.2].[jsp]] (http--127.0.0.1-8080-1) Servlet.service() for servlet jsp threw exception: java.lang.NumberFormatException: null
at java.lang.Long.parseLong(Long.java:372) [rt.jar:1.6.0_13]
at java.lang.Long.parseLong(Long.java:461) [rt.jar:1.6.0_13]
at org.apache.jsp.processInfo_jsp._jspService(processInfo_jsp.java:64)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [jbossweb-7.0.13.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) [jbossweb-7.0.13.Final.jar:]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [jbossweb-7.0.13.Final.jar:]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) [jbossweb-7.0.13.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Thread.java:619) [rt.jar:1.6.0_13]

an i can't understand it,can you help me please

ofloflofl
  • 205
  • 3
  • 6
  • 12

2 Answers2

1

Looking at the exception, I see that somewhere in the jsp you are doing

Long.parseLong(someStringVariable);

and someStringVariable is null. So check for null before parsing to Long

if(someStringVariable != null) {
    Long.parseLong(someStringVariable);
}

NOTE:

  • Even if someStringVariable is NOT null, Long.parseLong(someStringVariable) still may throw exception if the string is not in a parsable format
  • And it is recommended that, use JSTL in JSP and leave all logic of parsing to Servlets
Community
  • 1
  • 1
sanbhat
  • 17,522
  • 6
  • 48
  • 64
0

You are trying to format null. Try to check wether it is null or not.

include the tag,

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

and also format the value like this,

<fmt:parseNumber var="i" type="number" value="${inputValue}" />
<p>Parsed Number : <c:out value="${i}" /></p>
newuser
  • 8,338
  • 2
  • 25
  • 33