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)
次のjarをダウンロードして、WEB-INF/lib
ディレクトリに追加します。
このエラーは、アプリケーションで使用できないためクラスが見つからないことを示しています。
Mavenを使用している場合は、jstl
アーティファクトの依存関係があることを確認してください。
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
使用しない場合は、クラスパスにJARを含めるようにしてください。ダウンロードリンクについては、 この回答 を参照してください。
デフォルトでは、Tomcatコンテナにはjstlライブラリが含まれていません。これを修正するには、Mavenプロジェクトで作業している場合、またはアプリケーションのクラスパスに追加する場合、Maven pom.xmlファイルでjstl.jarを宣言します
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
jstl
jarをアプリケーションクラスパスに追加します。
たぶん、jstlライブラリーがクラスパスから欠落しているか、Tomcatからアクセスできません。
少なくとも次のjarファイルをWEB-INF/lib
ディレクトリに追加する必要があります。
簡単なコメント:pom.xmlにエントリがある場合でも、Mavenはjstl-.jarをWEB-INFフォルダーにコピーしないことがあります。
JSTL jarをファイルシステムの/ WEB-INF/libに手動でコピーする必要がありました。これで問題は解決しました。この問題は、Maven warパッケージングプラグインに関連している可能性があります。
同じ問題がありました。 [プロジェクトプロパティ]-> [デプロイメントアセンブリ]に移動し、jstl jarを追加します。