안녕하세요. 두통을 불러 일으키는 생산적인 webapp 개발 버전이 있습니다. admin.jsp가 폴더 구조를 표시하려고 시도하는 동안 로그인 할 때 다음 오류가 발생합니다. java tomcat : java.lang.NullPointerException
org.apache.jasper.JasperException: Exception in JSP: /admin/admin.jsp:133
130: GenDisplay display = null;
131: if(null==oldDisplay || true==oldDisplay.checkIsOld()) {
132: display = new GenDisplay(oldDisplay);
133: display.genTree(((CompanySession)ppa).getRootOrdner(), ((CompanySession)ppa).getRootType(), user.getUID(), out);
134: ((CompanySession)ppa).setGenDisplay(display);
135: } else {
136: display = oldDisplay;
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:451)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
root cause
java.lang.NullPointerException
ppa.admin.GenDisplay.getKey(GenDisplay.java:185)
ppa.admin.GenDisplay.isOpen(GenDisplay.java:161)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:49)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:57)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:57)
ppa.admin.GenDisplay.genSubTree(GenDisplay.java:57)
ppa.admin.GenDisplay.genTree(GenDisplay.java:42)
org.apache.jsp.admin.admin_jsp._jspService(admin_jsp.java:606)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
이
오류 생성 라인 (606) 코드 블록 주위에 admin_jsp.java입니다 : 그건,GenDisplay oldDisplay = ((CompanySession)ppa).getGenDisplay();
GenDisplay display = null;
if(null==oldDisplay || true==oldDisplay.checkIsOld()) {
display = new GenDisplay(oldDisplay);
display.genTree(((CompanySession)ppa).getRootOrdner(), ((CompanySession)ppa).getRootType(), user.getUID(), out);
((CompanySession)ppa).setGenDisplay(display);
} else {
display = oldDisplay;
}
//out.println(((CompanySession)ppa).getRootOrdner());
//
int currentOrdner = ((CompanySession)ppa).getRootOrdner();
int currentOrdnerType = ((CompanySession)ppa).getRootType();
if(null!=oldDisplay) {
currentOrdner = oldDisplay.getCurrentOrdner();
currentOrdnerType = oldDisplay.getCurrentOrdnerType();
} else {
display.openOrdner(((CompanySession)ppa).getRootOrdner(), ((CompanySession)ppa).getRootType());
}
그래서 내가 display.genTree (에 전달 된 변수) 널 중 하나 분류를 왜 NullPointerException이 . 이 개발은 작업중인 프로덕션 버전에서 정확히 복사되었으므로 여기서는 오류가 발생하고 프로덕션 버전에서는 오류가 발생하지 않는 이유는 무엇입니까? 나는 당혹 스럽다. 아무도 아이디어가 있습니까? 미리 감사드립니다!
p.s는 : 나는 자바 버전, 바람둥이 버전, 컴파일러 버전을 비교했다. 두 톰캣 모두 동일한 설정을 복원했습니다. 나는 mysql 서버 버전과 설정을 비교했다. 거의 동일한 버전과 설정입니다. 관련된 소프트웨어와의 주요 릴리스 차이가 없습니다. 나는 바람둥이 (6,7)의 최신 버전을 시도하고 다른 오류가있어, 그래서 더 혼란스러워. 나는 webapp을 작성하지 않았고 java를 처음 사용하기 때문에 정말 도움이 필요하다.
우리는 null이 무엇인지, 코드가 실제로 무엇을하고 있는지 전혀 알지 못합니다. –
분명히 뭔가가 개발 서버와 프로덕션 서버간에 다릅니다. 그것은 우리가 어느 누구에게도 접근 할 수 없다는 점을 감안할 때 가능한 한 많은 이야기입니다. – mcfinnigan
개발 및 제작을 위해 tomcat 버전이 동일합니까? –