Solved

Java bean gives null pointerexception

Posted on 2003-11-01
9
302 Views
Last Modified: 2010-04-01
Hi,
   I know this is really very very funny.At times my java bean application works and at times it give an exception of null pointer.
I think my problem is that maybe i am not using the get  properly,

I mean, when i use set i use:

<jsp:useBean id="vol" class="com.dhal.volun" scope="session"/>
<jsp:setProperty name="vol" property="*"/>

But i use the getters such as:
       username=vol.getUsername();
       passwd=vol.getPasswd();

Do i need to write something maybe to use it, for example,

jsp:getProperty......

coz, when i look at work folder for the jas_jsp files it seems as if vol is null.

But if write
System.out.println(username);
username gets printed so i am surprise which is null.

Thanks
0
Comment
Question by:Jasbir21
  • 5
  • 3
9 Comments
 
LVL 14

Expert Comment

by:kennethxu
ID: 9664825
the is nothing wrong of the code that u have posted. the problem is in somewhere else, post the full stack trace of you exception.
0
 

Author Comment

by:Jasbir21
ID: 9664907
java.lang.NullPointerException
      org.apache.jsp.jsp2.jas_jsp._jspService(jas_jsp.java:250)
      org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
      javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
      org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
      org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
      org.apache

When  i looked at the line 250,it is about this line
passwd=rs.getString(2).trim();

The java code for query that i use is....
 try
{

   Class.forName("com.mysql.jdbc.Driver").newInstance();
   connection = DriverManager.getConnection(connectionURL, "", "");
   
   statement=connection.createStatement();
   String myquery="select * from account where username='Jasbir22'";
   rs=statement.executeQuery(myquery);
   boolean anyRecords=rs.next();


   String query="select * from volunteer where username='Jasbir22'";
   statement1=connection.createStatement();
   rs1=statement1.executeQuery(query);
   boolean any=rs1.next();


if(rs1.getString(1).trim().equals(rs.getString(1).trim()))
   {
     username=rs.getString(1).trim();
     passwd=rs.getString(2).trim();
     verify=rs.getString(3).trim();
     .......
    .......//its is alot here
     name=rs1.getString(2).trim();
     day=rs1.getString(19).trim();
     month=rs1.getString(20).trim();
     year=rs1.getString(21).trim();

}


  }//try
 
   catch(SQLException ex ) {  ex.printStackTrace() ; }

   catch( ClassNotFoundException ex ){  ex.printStackTrace() ; }


 %>

0
 
LVL 14

Accepted Solution

by:
kennethxu earned 60 total points
ID: 9665009
rs.getString(2) is giving you null.

make sure password is the column number 2 and it is not null for user Jasbir22.
BTW, I'd suggest you to use column name instead of possition, since position might change if you add new columns to database.
0
Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

 

Author Comment

by:Jasbir21
ID: 9665059
Hi,
   I don't understand something, does it mean that a column value cannot be null because if its it would give a null pointer,
sometimes, a user would need not enter a column, soit is null

Thnaks
0
 

Author Comment

by:Jasbir21
ID: 9665154
when i type describle table,

i get
username|password|verifypassword,

So, i guess it is at column 2 ????

How do i do it the column name way

Thanks
0
 
LVL 15

Assisted Solution

by:dualsoul
dualsoul earned 40 total points
ID: 9665270
>So, i guess it is at column 2 ????
columns are counted from ResultSet, not DB schema, but in your it's the same, because you retrive all columns.

>How do i do it the column name way
just use overloading methods in ResultSet:
    String s=rs.getString("password");

0
 

Author Comment

by:Jasbir21
ID: 9665607
When you say column are counted from Resultset,

how are they are counted...

thanks
0
 
LVL 14

Expert Comment

by:kennethxu
ID: 9665838
>> When you say column are counted from Resultset.
that's the order in your select statment. it's same if you use select *, but if you use select password, username from..., then the order is password, username.

>> does it mean that a column value cannot be null
NO, the problem is that you are doing a trim(), so if the rs.getString() returns null, you are doing s = null.trim(), of course, you get NPE.
for those columns that could be null in database, you should always use
String s = rs.getString("columnname");
if( s != null ) s=s.trim();
0
 

Author Comment

by:Jasbir21
ID: 9667239
......I have been spending days to find out what my problem, and you guys in experts - exchange solved in seconds.Thank you so much....

Regards,
Jasbir
0

Featured Post

Gigs: Get Your Project Delivered by an Expert

Select from freelancers specializing in everything from database administration to programming, who have proven themselves as experts in their field. Hire the best, collaborate easily, pay securely and get projects done right.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
web service Rest Client creation 4 85
java.util.concurrent.locks in java 3 191
bean mapper frameworks 5 60
TreeSet comparator example 7 95
How do we balance the user experience (UX) with reasonable security measures? It can be done, if you keep these fundamentals in mind.
Google Drive is extremely cheap offsite storage, and it's even possible to get extra storage for free for two years.  You can use the free account 15GB, and if you have an Android device..when you install Google Drive for the first time it will give…
This video shows how to use Hyena, from SystemTools Software, to bulk import 100 user accounts from an external text file. View in 1080p for best video quality.
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

776 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question