我需要在我的网络应用程序中使用Stanfordparser.jar,pdfbox.jar,FontBox.jar。我正在使用tomcat 7.0.22服务器在Netbeans上开发这个Web应用程序,我在WEB-INF / lib和Libraries文件夹中都包含了所有这些.jar文件(但是webapp在库文件夹中使用.jar),Web应用程序在本地机器上运行良好。但是当我在WSO2 Stratoes live服务器中运行.war文件并转到使用.jar文件的JSP页面时,它会出现此错误。
java.lang.NullPointerException
controler.ControlerServelet.doPost(ControlerServelet.java:499)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
sun.reflect.GeneratedMethodAccessor1364.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:273)
org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:270)
java.security.AccessController.doPrivileged(Native Method)
javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:305)
org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
将.jar文件放在WEB-INF / lib中就够了吗?或者我是否需要将它们指向web.xml文件? 或者我该如何克服这个问题?
更新
这是我的代码
String url = "jdbc:mysql://rss1.stratoslive.wso2.com/karshamarkuptool_karsha_opensource_lk";
String username = "root2_lQrhzZUK";
String password = "nbuser";
BasicDataSource ds = new BasicDataSource();
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
byte[] b = null;
try {
b = getBLOB("2");
} catch (Exception ex) {
Logger.getLogger(ControlerServelet.class.getName()).log(Level.SEVERE, null, ex);
}
492 //ArrayList<String> sentenceList = new ArrayList<String>();
493 ArrayList<String> sentenceList;
494 parseDocument doc = new parseDocument(); // Parse document object this has the external dependencies
495 sentenceList=doc.pdfDocToSentence(b);
499 // sentenceList.add("test string");
500 request.setAttribute("allphrases", sentenceList);
我已经注释掉第499行并修改了492到493.现在网页显示没有错误,但是一个空白页面。其余页面工作正常
我使用netbeans IDE并将外部jar文件添加到项目的Libraries文件夹中。虽然我在WEb_INf / lib文件夹中有jar文件,但是clases正在使用项目文件夹的Library文件夹中的外部库,这可能是个问题吗? 我需要指向servlet类来使用WEB_INf / lib文件夹中的库吗?
答案 0 :(得分:2)
也许您应该在第{4}行controler.ContrlerServelet
查看(我猜是什么)您的代码,或至少向我们展示?
大多数情况下,NPE是一个错误。
顺便说一句,你不应该在两个 WEB-INF / lib和容器lib文件夹中包含库。尽可能坚持使用WEB-INF / lib;你的webapp类加载器将从那里加载它们。