2012-03-28 4 views
1

Ich muss Stanfordparser.jar, pdfbox.jar, FontBox.jar in meiner Webanwendung verwenden. Ich entwickle diese Web-App auf Netbeans und benutze Tomcat 7.0.22 Server, ich habe alle diese .jar-Datei im WEB-INF/lib AND Libraries-Ordner (aber webapp verwendet .jar im Bibliotheksordner), Die Web-App läuft gut auf dem lokalen Computer. Aber wenn ich die WAR-Datei im WSO2 Stratoes Live-Server ausführe und auf die JSP-Seite gehe, die die JAR-Datei verwendet, gibt es diesen Fehler.Verwenden Sie externe Jar Dateien Web App/Stratos Live

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) 

Putting .jar-Dateien nur in WEB-INF/lib ist genug? Oder muss ich sie in der web.xml-Datei zeigen? Oder wie überwinde ich dieses Problem?


aktualisieren

dies ist mein Code

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); 

Ich habe Linie 499 kommentiert und modifiziert 492 bis 493. Jetzt Webseite zeigt keine Fehler, aber eine leere Seite. Rest der Seiten funktioniert gut

Ich benutze Netbeans IDE und fügte hinzu, externe JAR-Dateien zu Projekt Bibliotheken Ordner auch. Obwohl ich JAR-Dateien im Ordner WEb_INf/lib habe, verwenden die Klassen die externen Bibliotheken aus dem Ordner Bibliothek des Projektordners. Kann dies ein Problem sein? Muss ich Servelet-Klassen zeigen, um die Bibliotheken aus dem Ordner WEB_INf/lib zu verwenden?

Antwort

2

Vielleicht sollten Sie Ihren Code in controler.ContrlerServelet in Zeile 499 überprüfen (was ich denke), oder zeigen Sie es uns zumindest?

Am häufigsten ist eine NPE ein Fehler.

übrigens, sollten Sie keine Bibliotheken in sowohl WEB-INF/lib und den Container lib-Ordner enthalten. Bleiben Sie bei WEB-INF/lib, wenn Sie können; Ihr webapp class loader lädt sie von dort.

Verwandte Themen