Подтвердить что ты не робот

Java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config

Когда я запускаю свое приложение после ввода 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)
4b9b3361

Ответ 1

Загрузите следующие банки и добавьте их в каталог WEB-INF/lib:

Ответ 2

Ошибка говорит вам, что он не может найти класс, потому что он недоступен в вашем приложении.

Если вы используете Maven, убедитесь, что у вас есть зависимость для артефакта jstl:

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

Если вы не используете его, просто убедитесь, что вы включили JAR в свой путь к классам. См. этот ответ для ссылок на скачивание.

Ответ 3

По умолчанию контейнер Tomcat не содержит библиотеки jstl. Чтобы исправить это, объявляет jstl.jar в файле Maven pom.xml, если вы работаете в проекте Maven или добавляете его в свой путь к классу приложений

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

Ответ 4

Добавьте jstl jar в свой путь к классу приложений.

Ответ 5

Вероятно, библиотеки jstl отсутствуют в вашем пути к классам/недоступны tomcat.

В каталоге WEB-INF/lib вам нужно добавить, по крайней мере, следующие файлы jar:

  • jsf-impl.jar
  • jsf-api.jar
  • jstl.jar

Ответ 6

Просто быстрый комментарий: иногда Maven не копирует jstl-.jar в папку WEB-INF, даже если у pom.xml есть запись для него.

Мне пришлось вручную скопировать банку JSTL в /WEB -INF/lib в файловой системе. Это решило проблему. Эта проблема может быть связана с плагином для упаковки Maven War.

Ответ 7

Добавить JSTL library в зависимости от вашего проекта (javax.servlet.jsp.jstl.core.Config является частью этого пакета). Например, если вы использовали Gradle, вы можете написать в файле build.gradle:

dependencies {
    compile 'javax.servlet:jstl:1.2'
}

Ответ 8

У меня была та же проблема. Перейдите в Project Properties → Deployment Assemplbly и добавьте jstl jar