4

実行時のエラー:

index.jsp(12,8) PWC6038: "${sqlStatement == null}" contains invalid expression(s):
javax.el.ELException: Unable to find ExpressionFactory of type:
    org.apache.el.ExpressionFactoryImpl
    org.apache.jasper.JasperException: : javax.el.ELException: Unable to find ExpressionFactory of type: org.apache.el.ExpressionFactoryImpl

質問:

  1. これをデバッグするにはどうすればよいですか?
  2. タイプ org.apache.el.E​​xpressionFactoryImpl の ExpressionFactory が見つかりません <- これはどういう意味ですか?

これは私が持っているものです

  • NetBeans IDE 7.3
  • トムキャット 7.0
  • MySQL 接続

これは Murach の本からの単純な SQL ゲートウェイです。

index.jsp

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 

    <c:if test="${sqlStatement == null}">
        <c:set var="sqlStatment" value="select * from User" />
    </c:if>

    <h1>The SQL Gateway</h1>
    <p>Enter an SQL statement and click the execute button. Then, information about the<br/>
    statement will appear at the bottom of this page.
    </p>

    <p><b>SQL Statement:</b></p>

    <form action="SqlGateway" method="POST">

        <textarea name="sqlStatement" cols="60" rows="8">${sqlStatement}</textarea>
        <br/><br/>
        <input type="submit" value="Execute">

    </form>

    <p><b>SQL result:</b></p>
    <p>${sqlResult}</p>

web.xml

    <servlet>
    <servlet-name>SqlGatewayServlet</servlet-name>
    <servlet-class>sql.SqlGatewayServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>SqlGatewayServlet</servlet-name>
    <url-pattern>/SqlGateway</url-pattern>
</servlet-mapping>

サーブレットに問題はないと思いますが、投稿する必要がある場合はお知らせください。

4

1 に答える 1

2

私のel-api.jarファイルに何か問題があるのでしょうか

Webアプリケーション/WEB-INF/lib. サーブレットコンテナ固有の JAR ファイルは、サーブレットコンテナ自体によってすでに提供されていると想定されています。

Tomcat の/libフォルダーを調べてください。内部ライブラリー、JSP、サーブレット、および EL ライブラリーが既に同梱されています。webapp 経由でそれらを提供する必要はありません。それでも実行すると、異なるバージョンのライブラリが重複しているため、実行時クラスパスが惨事になる可能性があります。特定のケースでは、webapp を介してランダムにダウンロードされた EL API を提供した可能性がありますが、これはランタイム クラスパスで見つかった EL impl と一致しないため、抽象ファクトリ パターンを介して正しい impl を見つけることができません。

そのため、 でサーブレット コンテナ固有の JAR を削除すれば/WEB-INF/lib、すべてがうまくいくはずです。には、webapp 自体に固有で、servletcontainer によってまだ提供されていないライブラリのみ/WEB-INF/libを含める必要があります。

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

于 2013-07-31T20:36:08.833 に答える