Smithey93
Smithey93

Reputation: 45

Tomcat 500 error with JSP page - the only JSP contents is if/else

i hope everyone is well.

I come from a PHP background and recently I have had to do some work on a project based on Java - I then found out about JSP pages which was quite similar to PHP. I have tried to make a page which has a "String" variable declared, which is called account. I then check if the account is an administrator, if so they can see the admin menus. However, it works fine for me in firefox and chrome, but customers using the same browser are seeing a 500 error. Please see details below from the logs, i have no idea what it means but i do know a simple if statement shouldn't cause it (stupid language).


Mar 06, 2014 8:51:59 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [jsp] in context with path [/test] threw exception [An exception occurred processing JSP page /test.jsp at line 126

123:                </ul>       
124:            </li>
125: <% 
126: if (account.equals("sysadmin")) { %>
127:            <li>
128:                <a href="#" target="_gts">AssetTrack</a>
129:                <ul>


Stacktrace:] with root cause
java.lang.NullPointerException
    at org.apache.jsp.test_jsp._jspService(test_jsp.java:203)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:409)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1044)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)

Any ideas let me know, before i go insane! Thanks,

Paul

Upvotes: 0

Views: 645

Answers (3)

Chinmay Patel
Chinmay Patel

Reputation: 430

When ever you get a NullPointerException as in this case, you must be calling some function on a null. In your code

if (account.equals("sysadmin")) {

NullPointerException has occured because account may be null.

so before using this line

if (account.equals("sysadmin")) {

You should check if account is not null Like below

if(account!=null) { if (account.equals("sysadmin")) {

Means you should call equals function only after confirming account is not null.

Hope it helps!

Upvotes: 0

jmail
jmail

Reputation: 6132

use this method to avoid the null pointer expception:

if(account!=null && !account.toString().equalsIgnoreCase(""))

Upvotes: 0

Santhosh
Santhosh

Reputation: 8207

Try this ,

if ((null!=account) && (account.equals("sysadmin")))

because it says , you have null pointer exception . so you should check whether account is not null

Hope it helps !

Upvotes: 1

Related Questions