2012-01-15 81 views
4

我想使用Spring與Hibernate。查看使用JSTL。當我在瀏覽器中打開網頁我看到錯誤:javax.servlet.jsp.jstl.core.Config類沒有找到

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
at org.springframework.web.servlet.support.JstlUtils.exposeLocalizationContext(JstlUtils.java:97) 
at org.springframework.web.servlet.view.JstlView.exposeHelpers(JstlView.java:135) 
at org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:211) 
at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250) 
at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:212) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) 
at java.lang.Thread.run(Thread.java:662) 

這是我的依賴,從pom.xml的,與此相連的部分:

<!-- Java EE --> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>servlet-api</artifactId> 
    <version>2.5</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>javax.servlet.jsp</groupId> 
    <artifactId>jsp-api</artifactId> 
    <version>2.0</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>javax.servlet</groupId> 
    <artifactId>jstl</artifactId> 
    <version>1.2</version> 
</dependency> 
<dependency> 
    <groupId>javax.el</groupId> 
    <artifactId>el-api</artifactId> 
    <version>1.0</version> 
    <scope>provided</scope> 
</dependency> 

哪裏出了問題? 我使用的是tomcat版本6.

+0

看看這個答案:http://stackoverflow.com/a/5168057/81179 – ChristopheD 2012-01-15 18:03:13

回答

0

問題出在web.xml中的servlet版本錯誤。我已經做到了2.5,所有的作品。

2

這個問題的例外是明確的。我知道默認情況下,tomcat不包含jstl庫。我看到你已經添加了jstl到你的依賴列表中,所以它應該是你的web-inf/lib的一部分。確保它在那裏。

+0

我看了這個答案:stackoverflow.com/a/5168057/81179,把jstl.jar放在tomcat direcotry的lib中現在正在工作。但是,爲什麼我需要把它放在那裏,如果我添加依賴? – Hleb 2012-01-15 18:19:07

+2

@Hleb - 我相信下面的依賴應該照顧這個。如果沒有,那麼你需要找到要添加什麼樣的依賴需要 的javax.servlet JSTL 1.2 2012-01-15 18:22:14

2

添加所有的罐子在WEB-INF/lib

jsf-impl.jar 
jsf-api.jar 
jstl.jar 
commons-logging.jar 
commons-beanutils.jar 
commons-collections.jar 
commons-chain.jar 
commons-digester.jar 
commons-codec-1.6.jar 

添加,然後將其添加到構建路徑。 It Works!