![]() |
Re. Null Pointer Exception.
I know that SOME of you think that I am being "crazy" and foolhardy by still
posting my problem about getting that "java.lang.NullPointerException" almost every time that I try/attempt to view a servlet image in my browser, but I swear, I have looked OVER AND OVER at the lines in the servlet file which I suspect could be giving me this server error, but I honestly could not find the problem! Truth In Representation : I HAVE been able to view just a few of the images successfully, but I really don't know why. Well, with my apologies to those of you who don't feel like I need again the servlet code, I humbly re-submit it to you : package com.laundry.gal; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class LuvThisGal extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { response.setContentType("image/jpg"); ServletContext ctx = getServletContext(); InputStream is = ctx.getResourceAsStream("/GirlAtSink.jpeg"); int read = 0; byte[] bytes = new byte[1024]; OutputStream os = response.getOutputStream(); while((read = is.read(bytes)) != -1) { os.write(bytes, 0, read); response.sendError(500,"Hey! Your Servlet Developed A" + "NullPointerException."); } os.flush(); os.close(); } } |
Re: Re. Null Pointer Exception.
Steve R. Burrus wrote:
> I know that SOME of you think that I am being "crazy" and foolhardy by still > posting my problem about getting that "java.lang.NullPointerException" > almost every time that I try/attempt to view a servlet image in my browser, > but I swear, I have looked OVER AND OVER at the lines in the servlet file > which I suspect could be giving me this server error, but I honestly could > not find the problem! Truth In Representation : I HAVE been able to view > just a few of the images successfully, but I really don't know why. Well, > with my apologies to those of you who don't feel like I need again the > servlet code, I humbly re-submit it to you : > > package com.laundry.gal; > > import java.io.*; > import javax.servlet.*; > import javax.servlet.http.*; > > public class LuvThisGal extends HttpServlet { > public void doGet(HttpServletRequest request, HttpServletResponse > response) throws > IOException,ServletException { > response.setContentType("image/jpg"); > > > ServletContext ctx = getServletContext(); > InputStream is = ctx.getResourceAsStream("/GirlAtSink.jpeg"); > > int read = 0; > byte[] bytes = new byte[1024]; > > OutputStream os = response.getOutputStream(); > > while((read = is.read(bytes)) != -1) { > os.write(bytes, 0, read); > response.sendError(500,"Hey! Your Servlet Developed A" + > "NullPointerException."); > > } > os.flush(); > os.close(); > > } > } > > > first put your code inside a try catch block. Second, in your catch block, print a stack trace. That will tell you exactly where the problem is. |
Re: Re. Null Pointer Exception.
I have a question about your code. I really don't much about servlets,
but I'm wondering about the call to response.sendError inside the while loop. Does this cause the NullPointerException to be displayed after you write the first array of bytes? |
Re: Re. Null Pointer Exception.
Steve R. Burrus wrote:
> I know that SOME of you think that I am being "crazy" and > foolhardy by still posting my problem about getting that > "java.lang.NullPointerException" almost every time that > I try/attempt to view a servlet image in my browser, but > I swear, I have looked OVER AND OVER at the lines in the > servlet file which I suspect could be giving me this > server error, but I honestly could not find the problem! > Truth In Representation : I HAVE been able to view just a > few of the images successfully, but I really don't know > why. Well, with my apologies to those of you who don't > feel like I need again the servlet code, I humbly > re-submit it to you : The real problem is that you keep reposting this, with different subject lines, without any indication that you have read the numerous replies, or providing the additional information they indicated was needed. "It's still about the NPE." was a bit better than this one, because you included the stack trace. However, I didn't see a reply to e.g.: > Almost there. Now you just need to tell us which line is > 22. (If the package statement were the first line, 22 > would consist of just a closing brace, which seems > unlikely.) (From Mike Schilling's reply in that thread.) I have some general advice on how to debug at http://home.earthlink.net/~patricia_shanahan/debug/. I do not recommend simply looking over the lines unless that works very quickly. You need to start a logical, structured debug effort. The very first step, as you have already been told, is to identify the line at which the exception happened. We don't know which line it is. You should. Once you have done that, list the pointers that are dereferenced on that line. One of them is null when the NPE is thrown. If there is more than one dereferenced pointer on the line, use a debugger or println to find out which is null on failure. Once you have identified the null pointer, you need to decide what to do about it. Patricia |
Re: Maybe this is the issue:
"Steve R. Burrus" <burrus1@swbell.net> wrote in message news:G1j2e.3980$oy3.2933@newssvr30.news.prodigy.co m... > I know that SOME of you think that I am being "crazy" and foolhardy by still > posting my problem about getting that "java.lang.NullPointerException" > almost every time that I try/attempt to view a servlet image in my browser, > but I swear, I have looked OVER AND OVER at the lines in the servlet file > which I suspect could be giving me this server error, but I honestly could > not find the problem! Truth In Representation : I HAVE been able to view > just a few of the images successfully, but I really don't know why. Well, > with my apologies to those of you who don't feel like I need again the > servlet code, I humbly re-submit it to you : > > package com.laundry.gal; > > import java.io.*; > import javax.servlet.*; > import javax.servlet.http.*; > > public class LuvThisGal extends HttpServlet { > public void doGet(HttpServletRequest request, HttpServletResponse > response) throws > IOException,ServletException { > response.setContentType("image/jpg"); > > > ServletContext ctx = getServletContext(); > InputStream is = ctx.getResourceAsStream("/GirlAtSink.jpeg"); > > int read = 0; > byte[] bytes = new byte[1024]; > > OutputStream os = response.getOutputStream(); > > while((read = is.read(bytes)) != -1) { > os.write(bytes, 0, read); > response.sendError(500,"Hey! Your Servlet Developed A" + > "NullPointerException."); > > } > os.flush(); > os.close(); > > } > } > > The only variable that can possibly be null, as far as i can see right now, is the 'InputStream is' The 'is = ctx.getResourceAsStream("/...."); ' statement can return null. See the java-doc: ============================================= public java.io.InputStream getResourceAsStream(java.lang.String path) - Returns the resource located at the named path as an InputStream object. - The data in the InputStream can be of any type or length. The path must be specified according to the rules given in getResource. ***This method returns null if no resource exists at the specified path.*** - Meta-information such as content length and content type that is available via getResource method is lost when using this method. - The servlet container must implement the URL handlers and URLConnection objects necessary to access the resource. - This method is different from java.lang.Class.getResourceAsStream, which uses a class loader. This method allows servlet containers to make a resource available to a servlet from any location, without using a class loader. Parameters: name - a String specifying the path to the resource Returns: the InputStream returned to the servlet, or null if no resource exists at the specified path ============================================= Check if the resource "/GirlAtSink.jpeg" exists. In short, test if 'is == null'!!! -- Anton Spaans. |
Re: Re. Null Pointer Exception.
Steve R. Burrus wrote:
> I know that SOME of you think that I am being "crazy" and foolhardy by still > posting my problem about getting that "java.lang.NullPointerException" Is it possible you have not read any of the replies on the newsgroup and you are waiting for an e-mail? Read the replys in the news group, please. -Paul |
Re. Null Pointer Exception.
Can anyone explain to me, to my satisfaction, why it is that I only get the
"java.lang.NullPointerException" on SOME of the images which I try/attempt to view in my web browser, but on maybe 1 or 2 others I can view successfully!!! And I need someone to please explain how to use the FileInputStream (and the FileOutputStream class also?) with the "getRealPath( )" Java method to enable me to finally see ALL of the images that I would like to see. And also, I was told by somebody that I should put the various images into my Tomcat's (I have the version 5.5.7 of it incidentally) WEB-INF\classes folder or directory. Is this the right thing to do or not? And how do I go about making a "Library" pertaining to these images that I was told goes into the WEB-INF\lib folder anyway? If I have these images in the main servlet context folder for the web application, are they said to be within the web app's scope ot not? Frankly people, I am going crazy and downright out of my mind with sheer frustration because I still haven't done this right, or at least to my satisfaction at all!!! I will be friends with someone in our group who can help me with this forever. One more question : Do I still have to use the ServletContext class when I use the getRealPath( ) method? |
Re: Re. Null Pointer Exception.
Steve R. Burrus wrote:
> Can anyone explain to me, to my satisfaction, why it is > that I only get the "java.lang.NullPointerException" on > SOME of the images which I try/attempt to view in my web > browser, but on maybe 1 or 2 others I can view > successfully!!! I don't know, but I have a general remark on debug technique that might help resolve this: **** You don't need to do it all at once. **** Nobody expects to go from no code to the complete, final program for anything non trivial in one step. Programmers know they are making progress as long as the program becomes more and more similar to the program they want. Progress can be passing more test cases, having tests for more of the required features, nailing down the design for a critical part of the program, anything that brings the program closer to the requirements. In the same way, beyond the most trivial cases, debug is best treated as a stepwise refinement process. It is often impossible, or at least unnecessarily difficult, to jump straight from external symptom to root cause. Going from "There is a NullPointerException" to "This line sometimes throws a NullPointerException" is progress. From there to "When the program fails, this variable is null on arrival at the line, and gets dereferenced." is another step. Most of the people responding in your NullPointerException threads seem to be taking the stepwise refinement view. They ask questions, or propose theories to test. They expect you to follow up by finding out the answers to the questions or testing the theories, and posting additional information. If you did that, you would get more questions and/or theories to test, until someone understood the root cause, and the conversation would switch to a discussion of solutions. Meanwhile, you seem to expect to leap straight from "This block of code throws a NullPointerException" to the root cause, and what to do about it, without going through any intermediate steps. If you were going to get lucky, and have someone make the leap for you, it would probably have happened about three weeks ago. Surely by now it's time to give the stepwise refinement approach a chance? Patricia |
Re: Re. Null Pointer Exception.
"Steve R. Burrus" <burrus1@swbell.net> wrote in message news:G1j2e.3980$oy3.2933@newssvr30.news.prodigy.co m... <<snip>> I am now re-posting only a part of my post from late last nite, and I would really like to have some specific answers to these particular questions. Thanx. And I need someone to please explain how to use the FileInputStream (and the FileOutputStream class also?) with the "getRealPath( )" Java method to enable me to finally see ALL of the images that I would like to see. And also, I was told by somebody that I should put the various images into my Tomcat's (I have the version 5.5.7 of it incidentally) WEB-INF\classes folder or directory. Is this the right thing to do or not? And how do I go about making a "Library" pertaining to these images that I was told goes into the WEB-INF\lib folder anyway? If I have these images in the main servlet context folder for the web application, are they said to be within the web app's scope ot not? |
Re:Null Pointer Exception.
Well, I just wanted to tell everybody/everyone that I seemed to get it
right, finally, with being able to view all of the various images in my web browser with this 1 line of code : >>"FileInputStream fis = new FileInputStream(ctx.getRealPath([name of image file]));"<< Sorry to be such a "bother" to some of you people. "Steve R. Burrus" <burrus1@swbell.net> wrote in message news:xUZ2e.9930$yq2.3328@newssvr12.news.prodigy.co m... > <<snip>> |
| All times are GMT. The time now is 01:25 AM. |
Powered by vBulletin®. Copyright ©2000 - 2013, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.