Tuesday, 15 April 2014

java - Keep getting null pointer exception -



java - Keep getting null pointer exception -

here program: have xml file , file have decode base64 string maintain getting nullpointerexception..please help! code follows...

import java.io.fileinputstream; import java.util.arraylist; import java.util.list; import javax.xml.parsers.saxparser; import javax.xml.parsers.saxparserfactory; import org.xml.sax.attributes; import org.xml.sax.saxexception; import org.xml.sax.helpers.defaulthandler; import org.apache.commons.codec.binary.base64; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.inputstream; import java.util.arrays; public class main { public static void main(string[] args) throws exception { saxparserfactory parserfactor = saxparserfactory.newinstance(); saxparser parser = parserfactor.newsaxparser(); saxhandler handler = new saxhandler(); //parser.parse(classloader.getsystemresourceasstream("atmspopulatedmsdata.xml"), // handler); parser.parse(new fileinputstream("c:\\users\\qta6754\\workspace\\java_dev\\xml64_decoded\\atmsmessagedata.xml"), handler); (neededinfo emp : handler.emplist) { system.out.println(emp); } } } class saxhandler extends defaulthandler { list<neededinfo> emplist = new arraylist<>(); neededinfo emp = null; string content = null; string did = null; public void startelement(string uri, string localname, string qname, attributes attributes) throws saxexception { switch (qname) { case "dmsdevicestatus": emp = new neededinfo(); emp.id = attributes.getvalue("id"); emp.read(); break; } } public void characters(char[] ch, int start, int length) throws saxexception { content = string.copyvalueof(ch, start, length).trim(); } } class neededinfo { string id; string firstname; string lastname; string location; string organization_id; string operator_id; string device_id; string dms_device_status; string dms_current_message; string last_comm_time; string date; string time; public string tostring() { //return firstname + " " + lastname + "(" + id + ")" + location+date+time+device_name; homecoming "organization id: " + organization_id + "\n" + "operator id: " + operator_id + "\n" + "device id: " + device_id + "\n" + "dms device status: " + dms_device_status + "\n" + "dms current message: " + dms_current_message + "\n" + "last comm time" + "\n" + "time: " + time + "\n" + "date: " + date + "\n" + "decoded string is: " + "\n" + "-------------------------------------"; } public void read() { byte[] bytearray = base64.decodebase64(dms_current_message.getbytes()); string decodedstring = new string(bytearray); system.out.print("the decoded message is: " + decodedstring); // homecoming decodedstring; } }

it's hard guess you're getting error, i'm assuming here:

byte[] bytearray = base64.decodebase64(dms_current_message.getbytes());

i don't see dms_current_message beingness initialized ever, yet you're calling method on it, result in null pointer exception.

java

No comments:

Post a Comment