使用外部Jar文件web app / Stratos Live

时间:2012-03-28 11:12:14

标签: jsp tomcat wso2 wso2stratos

我需要在我的网络应用程序中使用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文件夹中的库吗?

1 个答案:

答案 0 :(得分:2)

也许您应该在第{4}行controler.ContrlerServelet查看(我猜是什么)您的代码,或至少向我们展示?

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

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