<?xml version="1.0" encoding="GB2312" standalone="no"?><books><classes name="武侠"><item><name>古侠今遇</name><author>醉人岁月</author><synopsis>与世隔绝三百年......</synopsis></item><item><name>寒剑孤灯</name><author>忧郁丁香</author><synopsis>寒剑孤灯......</synopsis></item></classes><classes name="言情"></classes></books>
DocumentBuilderFactory dbff = DocumentBuilderFactory.newInstance();
// 2.从DOM工厂获得DOM解析器
DocumentBuilder bb = dbff.newDocumentBuilder();
// 3.解析XML文档,得到一个Document,即DOM树
Document doc = bb.parse("src\\booksvi.xml");
// 4.得到class所有节点列表信息
NodeList list = doc.getElementsByTagName("classes");
// 5.得到图书简介信息列表
List<String> lis1=new ArrayList<String>();
for (int i = 0; i <list.getLength(); i++) {
Node booksNode =list.item(i);
Element booksElement = (Element)booksNode;
String sr=booksElement.getAttribute("name");
lis1.add(sr);
}
List<Books> lis2=new ArrayList<Books>();
NodeList list5 = doc.getElementsByTagName("item");
for (int i = 0; i <list5.getLength(); i++) {
Node booksNode1 =list.item(i);
Element booksElement1 = (Element)booksNode1;
String name=booksElement1.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
String author=booksElement1.getElementsByTagName("author").item(0).getFirstChild().getNodeValue();
String synopsis=booksElement1.getElementsByTagName("synopsis").item(0).getFirstChild().getNodeValue();
Books booksi=new Books();
booksi.setName(name);
booksi.setAuthor(author);
booksi.setSynopsis(synopsis);
lis2.add(booksi);
}
datas.setLis1(lis1);
datas.setLis2(lis2);
代码执行到上一行就一直在报下面的错误,查看源代码,没发现错误啊?请大师们帮看看问题出在哪里?
Exception in thread "Thread-0" java.lang.NullPointerException
at com.jbit.server.ServerContextListener.run(ServerContextListener.java:118)
booksElement1.getElementsByTagName("name").item(0).getFirstChild().getNodeValue();
这个内容,其中哪项就已经是 null 了。比如: booksElement1.getElementsByTagName("name") 可能就是null你如果不熟悉断点调试的话,可以:
System.out.println(booksElement1.getElementsByTagName("name"));
System.out.println(booksElement1.getElementsByTagName("name").item(0));
System.out.println(booksElement1.getElementsByTagName("name").item(0).getFirstChild());
System.out.println(booksElement1.getElementsByTagName("name").item(0));添加这行报错如下:java.net.BindException: Address already in use: JVM_Bind
at java.net.TwoStacksPlainSocketImpl.socketBind(Native Method)
at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
at java.net.TwoStacksPlainSocketImpl.bind(Unknown Source)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at java.net.ServerSocket.<init>(Unknown Source)
at com.jbit.server.ServerContextListener.run(ServerContextListener.java:57),57行即:serverSocket = new ServerSocket(Integer.parseInt(Tools.getValue(SysConstants.SYS_LISTENERPORT)));
public class Tools {
private static Properties p = new Properties(); /**
* 读取properties配置文件信息
*/
static{
try {
p.load(Tools.class.getClassLoader().getResourceAsStream(SysConstants.SYS_PROPERTYNAME));
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 根据key得到value的值
*/
public static String getValue(String key)
{
return p.getProperty(key);
}
}也没错啊?
SYS_PROPERTYNAME = "sys.properties"
SYS_LISTENERPORT = "PORT"
配置文件sys.properties里面的信息如下:
HOST=localhost
PORT=8888
都没发现错误啊?
Exception in thread "Thread-0" java.lang.NullPointerException
at com.jbit.server.ServerContextListener.run(ServerContextListener.java:119)
null
提示说我的name是null,可我xml档里明明有啊?