51

URL を入力してアプリケーションを実行すると、この例外が発生します。Eclipse と Tomcat7.0.35 を使用しています。Jstl.jar と jstl1.2.jar も追加しました

私のコードは

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at org.apache.myfaces.view.jsp.JspViewDeclarationLanguage.buildView(JspViewDeclarationLanguage.java:91)
    at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:78)
    at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:241)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:199)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
4

8 に答える 8

71

エラーは、アプリケーションで使用できないため、クラスが見つからないことを示しています。

Mavenを使用している場合は、jstlアーティファクトへの依存関係があることを確認してください。

<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
</dependency>

使用していない場合は、クラスパスに JAR が含まれていることを確認してください。ダウンロード リンクについては、この回答を参照してください。

于 2013-02-27T13:50:38.683 に答える
57

次の jar をダウンロードして、WEB-INF/libディレクトリに追加します。

于 2013-02-27T14:00:35.790 に答える
9

デフォルトでは、Tomcat コンテナには jstl ライブラリは含まれていません。これを修正するには、Maven プロジェクトで作業している場合は Maven pom.xml ファイルで jstl.jar を宣言するか、それをアプリケーションのクラスパスに追加します。

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
  </dependency>
于 2013-02-27T13:49:47.920 に答える
3

jstljar をアプリケーションのクラスパスに追加します。

于 2013-02-27T13:47:47.027 に答える
2

おそらく、jstl ライブラリがクラスパスにないか、Tomcat からアクセスできません。

WEB-INF/libディレクトリに少なくとも次の jar ファイルを追加する必要があります。

  • jsf-impl.jar
  • jsf-api.jar
  • jstl.jar
于 2013-02-27T13:47:27.507 に答える
1

簡単なコメント: pom.xml にエントリがある場合でも、Maven が jstl-.jar を WEB-INF フォルダーにコピーしないことがあります。

JSTL jar をファイル システムの /WEB-INF/lib に手動でコピーする必要がありました。これで問題は解決しました。この問題は、Maven war パッケージ プラグインに関連している可能性があります。

于 2014-02-17T19:56:51.290 に答える
1

JSTL ライブラリを依存関係としてプロジェクトに追加します (javax.servlet.jsp.jstl.core.Configはこのパッケージの一部です)。たとえば、Gradleを使用している場合、build.gradle に次のように記述できます。

dependencies {
    compile 'javax.servlet:jstl:1.2'
}
于 2015-03-11T12:43:01.340 に答える