1

WebアプリケーションでStanfordparser.jar、pdfbox.jar、FontBox.jarを使用する必要があります。このWebアプリをNetbeansで開発しており、tomcat7.0.22サーバーを使用しています。これらすべての.jarファイルをWEB-INF/libとLibrariesフォルダーの両方に含めています(ただし、webappはlibraryフォルダーで.jarを使用します)。ローカルマシンで正常に動作します。しかし、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に変更しました。これで、Webページにエラーは表示されませんが、空白のページが表示されます。残りのページは正常に機能します

私はnetbeansIDEを使用しており、プロジェクトのLibrariesフォルダーにも外部jarファイルを追加しました。WEb_INf / libフォルダーにjarファイルがありますが、クラスはプロジェクトフォルダーのLibraryフォルダーの外部ライブラリを使用しています。これは問題になる可能性がありますか?WEB_INf / libフォルダーのlibraiesを使用するには、servletクラスを指定する必要がありますか?

4

1 に答える 1

2

たぶん、499行目のコードをチェックするか(私は推測します)、controler.ContrlerServelet少なくともそれを私たちに見せてください。

ほとんどの場合、NPE はバグです。

ところで、ライブラリをWEB-INF/lib とコンテナー lib フォルダーの両方に含めないでください。できる限り WEB-INF/lib に固執してください。webapp クラス ローダーはそこからそれらをロードします。

于 2012-03-28T11:42:27.900 に答える