Использовать внешнее Jar-файлы веб-приложения / Stratos Live - PullRequest
1 голос
/ 28 марта 2012

Мне нужно использовать Stanfordparser.jar, pdfbox.jar, FontBox.jar в моем веб-приложении.Я разрабатываю это веб-приложение на NetBeans и использую сервер Tomcat 7.0.22, я включил все эти файлы .jar в папку WEB-INF / lib и библиотеки (но веб-приложение использует .jar в папке библиотеки), веб-приложениеотлично работает на локальной машине.Но когда я запускаю файл .war на WSO2 Stratoes live server и перехожу на страницу JSP, которая использует файл .jar, он выдает эту ошибку.

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. Теперь веб-страницане показывает ошибки, но пустую страницу.Остальные страницы работают нормально

Я использую IDE NetBeans и добавил внешние файлы JAR в папку проекта библиотеки.Хотя у меня есть jar-файлы в папке WEb_INf / lib, предложения используют внешние библиотеки из папки Library папки проекта, это может быть проблемой?мне нужно указать классы сервлетов, чтобы использовать библиотеки из папки WEB_INf / lib?

1 Ответ

2 голосов
/ 28 марта 2012

Может быть, вам следует проверить (что я предполагаю) свой код в controler.ContrlerServelet в строке 499 или хотя бы показать его нам?

Чаще всего NPE - это ошибка.

Кстати, вам НЕ следует включать библиотеки в и WEB-INF / lib, и в папку lib контейнера. Придерживайтесь WEB-INF / lib, когда можете; ваш загрузчик классов веб-приложений загрузит их оттуда.

...