2012-03-28 3 views
1

나는 내 웹 응용 프로그램에 Stanfordparser.jar, pdfbox.jar, FontBox.jar를 사용해야합니다. 나는이 웹 애플 리케이션을 Netbeans에 개발하고 바람둥이 7.0.22 서버를 사용하여, 나는 WEB-INF/lib 및 라이브러리 폴더 (그러나 webapp는 .jar를 라이브러리 폴더에서 사용함), 웹 app 로컬 컴퓨터에서 잘 실행됩니다. 그러나 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 파일에서이를 가리킬 필요가 있습니까? 또는이 문제를 어떻게 극복합니까?


업데이트

이 나는 ​​라인 499 주석 지금 웹 페이지가 오류를 보여줍니다, 그러나 빈 페이지 493에 492을 수정 한 내 코드

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

입니다. 페이지 나머지 부분은 정상적으로 작동합니다.

저는 netbeans IDE를 사용 중이며 프로젝트의 Libraries 폴더에도 외부 jar 파일을 추가했습니다. 내가 WEB_INF/lib 폴더에 jar 파일이 Althought의 clases이 문제가 될 수 있으며, 프로젝트 폴더의 라이브러리 폴더에서 외부 라이브러리를 사용하고 있습니까? 내가 WEB_INF/lib 폴더에서 libraies를 사용하는 servelet 클래스를 가리 키도록해야합니까?

답변

2

은 아마 당신은 라인 499에서 controler.ContrlerServelet에서 코드를 (내가 추측입니다) 또는 적어도 우리에게 보여 확인해야?

대부분 종종, NPE는 버그입니다.

btw와 같이 WEB-INF/lib와 컨테이너 lib 폴더 모두에 라이브러리를 포함하면 안됩니다. 당신이 할 수있을 때 WEB-INF/lib에 고집하십시오; webapp 클래스 로더가 거기에서로드합니다.