org.apache.jasper.JasperException: невозможно скомпилировать класс для JSP, с которым столкнулись при использовании Spring - PullRequest
0 голосов
/ 07 марта 2012

Я новичок в весне.Я пытаюсь использовать Spring MVC для создания небольшой сети.Когда я запускаю проект, я получаю:

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 22 in the generated java file
The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:439)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
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:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)

Http-статус равен 500, но у моего index.jsp просто есть

<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

В файле web.xml:

 <servlet>
   <servlet-name>action</servlet-name>
   <servlet-class>
        org.springframework.web.servlet.DispatcherServlet
    </servlet-class>
</servlet>
<servlet-mapping> 
    <servlet-name>action</servlet-name> 
    <url-pattern>/</url-pattern>
</servlet-mapping>
 <welcome-file-list>
   <welcome-file>/jsp/index.jsp</welcome-file>
</welcome-file-list>

action-servlet.xml:

 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"/>
<context:component-scan base-package="com.test.Controller"/>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix"><value>/jsp/</value></property>
    <property name="suffix"><value>.jsp</value></property>
</bean>

Я помещаю index.jsp в папку src / main / webapp / jsp / .Может ли кто-нибудь дать мне подсказку об этой проблеме и проблемах в моих XML-файлах. Я новичок в весне, так что много путаницы.

Большое спасибо!

Ответы [ 2 ]

5 голосов
/ 07 марта 2012

Похоже, есть какое-то несоответствие версий. Убедитесь, что servlet-api и jsp-api не включены в папку WEB-INF/lib

При использовании Maven вы должны установить эти зависимости на <scope>provided</scope>, чтобы они не включались в артефакт (target / foo.war)

Если вы используете eclipse, вы должны установить другой плагин - m2e-wtp, который позаботится о <provided> зависимостях области видимости (m2e не делает этого при синхронизации с WTP)

0 голосов
/ 04 февраля 2015

У меня возникла та же проблема, потому что я использовал

 - jdk1.7.0_45
 - apache-tomcat-8.0.18

Но после того, как я изменил сервер на

 - apache-tomcat-7.0.57

Это было исправлено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...