1

我需要在我的 Web 应用程序中使用 Stanfordparser.jar、pdfbox.jar、FontBox.jar。我正在使用 tomcat 7.0.22 服务器在 Netbeans 上开发此 Web 应用程序,我已将所有这些 .jar 文件包含在 WEB-INF/lib 和库文件夹中(但 webapp 在库文件夹中使用 .jar),Web 应用程序在本地机器上运行良好。但是当我在 WSO2 Stratoes 实时服务器中运行 .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 文件,但是这些类正在使用项目文件夹的 Library 文件夹中的外部库,这可能是个问题吗?我是否需要指向 serverlet 类才能使用 WEB_INf/lib 文件夹中的库?

4

1 回答 1

2

也许您应该在第 499 行检查(我猜是什么)您的代码,controler.ContrlerServelet或者至少向我们展示它?

大多数情况下,NPE 是一个错误。

顺便说一句,您不应该在WEB -INF/lib 和容器 lib 文件夹中包含库。尽可能坚持使用 WEB-INF/lib;您的 webapp 类加载器将从那里加载它们。

于 2012-03-28T11:42:27.900 回答