繁体   English   中英

即使jstl 1.2在类路径中,javax.servlet.jsp.jstl.core.Config的ClassNotFoundException

[英]ClassNotFoundException for javax.servlet.jsp.jstl.core.Config even when jstl 1.2 is in the classpath

我正在按照此处找到的指南学习Spring MVC。 我正在使用Tomcat 8.0.14。 我遇到了javax.servlet.jsp.jstl.core.Config的ClassNotFoundException。 显然,我在我的build.gradle文件中包含了jslt 1.2,如下所示,但错误仍然存​​在:apply plugin:“ war”

repositories {
  mavenCentral()
  mavenLocal()
  maven { url "http://repo.spring.io/libs-release" }
}

configurations {
  provided
}

dependencies {

  provided 'javax.servlet:javax.servlet-api:3.1.0'

  compile 'taglibs:standard:1.1.2'
  compile 'javax.servlet.jsp.jstl:jstl:1.2'
  compile 'org.springframework:spring-context:4.1.1.RELEASE'
  compile 'org.springframework:spring-webmvc:4.1.1.RELEASE'
  compile 'org.mariadb.jdbc:mariadb-java-client:1.1.7'

  testCompile "org.springframework:spring-test:4.1.1.RELEASE"
  testCompile "junit:junit-dep:4.11"

}

sourceSets.main.compileClasspath += configurations.provided
sourceSets.test.compileClasspath += configurations.provided

war {
  baseName = "gs-first"
  version = "0.1.0-DEV"
}

仅当我到达步骤2.3时,才会出现该异常 在前面提到的指南中将视图与控制器分离 -只有这样我才能得到异常,所有前面的步骤都工作良好。

我怀疑org.springframework.web.servlet.view.JstlView可能存在wrt jstl jar错误,因为javax.servlet.jsp.jdtl.core.Config在路径中。

这是完整的例外:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1287)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

root cause
java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
        org.springframework.web.servlet.support.JstlUtils.exposeLocalizationContext(JstlUtils.java:101)
        org.springframework.web.servlet.view.JstlView.exposeHelpers(JstlView.java:135)
        org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:146)
        org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
        org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1228)
        org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1011)
        org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:955)
        org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
        org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966)
        org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:857)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
        org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:842)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
        org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

非常感谢您的帮助!

我正确地假设我使用了错误的jslt库。 代替

编译'javax.servlet.jsp.jstl:jstl:1.2'

我需要利用

编译'jstl:jstl:1.2'

我只是在Maven给我的选项“可卡因”中做出了错误的选择:)。 感谢您的阅读和帮助:)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM