2

Tomcat内にデプロイされたプロジェクトを実行しようとすると、次のようなエラーが発生します

java.lang.NullPointerException
    at org.apache.jsp.index_jsp._jspInit(index_jsp.java:23)
    at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52)
    at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
    at java.lang.Thread.run(Thread.java:619)

それに関して検索したところ、servlet-api.jar と jsp-api.jar の問題である可能性があることがわかりましたが、両方を tomcat からプロジェクトのクラスパスにコピーしましたが、それでも同じエラーが発生します。

Jsp :

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
     <base href="<%=basePath%>">

    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    --> 
  </head>

  <body>
    <%--<a href="login.iface">Click Here</a> --%>
  </body>
</html>

クラスパスには、次のjarのリストが含まれています

antlr-2.7.6
commons-beanutils
commons-collections
commons-collections-3.1
commons-digester
commons-logging
commons-logging-1.1
dom4j-1.6.1
ejb3-persistence
hibernate3
hibernate-annotations
hibernate-commons-annotations
icefaces-1.8.2
icefaces-comps-1.8.2
javassist-3.9.0.GA
jsf-api
jsf-facelets
jsf-impl
mysql-connector-java-3.1.8-bin
slf4j-api-1.5.11
slf4j-simple-1.5.11
4

1 に答える 1

7

それに関して検索したところ、servlet-api.jar と jsp-api.jar の問題である可能性があることがわかりましたが、両方を tomcat からプロジェクトのクラスパスにコピーしました

あなたは答えを誤解しているようです。それらを Web アプリケーションのランタイム クラスパス (WEB-INF/lib) に含めることが、この問題の全体的な原因です。それらを取り除きます。

servletcontainer 自体は、これらのライブラリとともに出荷されてます。任意のコンテナーからランダムにダウンロードされたライブラリを、異なるメーカー/バージョンの可能性がある webapp と共に提供すると、この種の問題が発生するだけです。Web アプリケーション プロジェクトのコンパイル エラーを「修正」するためにこれを行った場合は、別の方法で解決する必要があります。方法については、以下のリンクを参照してください。

以下も参照してください。

于 2012-12-15T14:00:11.353 に答える