2013-07-17 107 views
-5

这里是我的基于Java Struts的web应用程序和webRoot目录的目录结构。getting org.apache.jasper.JasperException:java.lang.NullPointerException

enter image description here

enter image description here

代码获得成功编译,但是当我运行浏览器,它提供了异常与HTTP状态500:

org.apache.jasper.JasperException: java.lang.NullPointerException 
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 


root cause 

java.lang.NullPointerException 
    org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) 
    org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52) 
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 

谁能帮助我在此,请感谢提前。

我试过战争文件运行外部tomcat-7但显示相同的错误,也发现这个org.apache.jasper.JasperException: java.lang.NullPointerException但对我没有帮助。

这里的web.xml

<?xml version="1.0"?> 
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" 
         "http://java.sun.com/dtd/web-app_2_3.dtd"> 
<web-app> 
<display-name>Ilex Reports</display-name> 
<description>Report Server</description> 
<servlet> 
    <servlet-name>rpt</servlet-name> 
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 
    <init-param> 
    <param-name>config</param-name> 
    <param-value>/WEB-INF/struts-config.xml</param-value> 
    </init-param> 
    <init-param> 
    <param-name>host</param-name> 
    <param-value>localhost</param-value> 
    </init-param> 
    <init-param> 
    <param-name>port</param-name> 
    <param-value>80</param-value> 
    </init-param> 
</servlet> 
<servlet-mapping> 
    <servlet-name>rpt</servlet-name> 
    <url-pattern>*.xo</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>/index.jsp</welcome-file> 
</welcome-file-list> 
<!-- Custom Tag Library Descriptors --> 
<taglib> 
    <taglib-uri>http://jakarta.apache.org/tomcat/fb-taglib</taglib-uri> 
    <taglib-location>/WEB-INF/tld/Element.tld</taglib-location> 
</taglib> 
<!-- Struts Tag Library Descriptors --> 
<taglib> 
    <taglib-uri>/tags/struts-bean</taglib-uri> 
    <taglib-location>/WEB-INF/tld/struts-bean.tld</taglib-location> 
</taglib> 
<taglib> 
    <taglib-uri>/tags/struts-html</taglib-uri> 
    <taglib-location>/WEB-INF/tld/struts-html.tld</taglib-location> 
</taglib> 
<taglib> 
    <taglib-uri>/tags/struts-logic</taglib-uri> 
    <taglib-location>/WEB-INF/tld/struts-logic.tld</taglib-location> 
</taglib> 
<taglib> 
    <taglib-uri>/tags/struts-nested</taglib-uri> 
    <taglib-location>/WEB-INF/tld/struts-nested.tld</taglib-location> 
</taglib> 
<taglib> 
    <taglib-uri>/tags/struts-tiles</taglib-uri> 
    <taglib-location>/WEB-INF/tld/struts-tiles.tld</taglib-location> 
</taglib> 
<login-config> 
    <auth-method>BASIC</auth-method> 
</login-config> 
</web-app> 
+0

提供的信息并不多。添加你的'web.xml'和'web文件夹结构',可能会帮助你解决一些问题。 –

回答

1

做一件事时,JSP被编译成Java Servlet,因此您可以检查代码,看看在适当的线。 java文件是我猜测在tomcat的工作目录中。

错误

org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) 

这里的线是看文件。

index_jsp.java 
0

您可能得到了版本不匹配,库文件版本不正确,或者从早期版本中损坏/部分JSP编译。

查看Tomcat/work目录(C:\ Dev \ Tomcat 6.0.35 \ work \ Catalina \ localhost \ jr \ org \ apache \ jsp \ WEB_002dINF \ jsp),在我的系统&上可以看到index_jsp.java文件的源代码。

清理Tomcat/work目录以强制重新编译所有JSP。

从Tomcat 6,_jspInit()的一个例子JSP的样子:

public void _jspInit() { 
    _005fjspx_005ftagPool_005fc_005fout_0026_005fvalue_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig()); 
    _005fjspx_005ftagPool_005fc_005furl_0026_005fvalue_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig()); 
    _005fjspx_005ftagPool_005fc_005fout_0026_005fvalue_005fescapeXml_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig()); 
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); 
    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName()); 
} 

从本质上讲,这东西应该工作 - 所以几乎可以肯定在你的配置有问题。

相关问题