ClassCastException с веб-приложением между машинами - PullRequest
1 голос
/ 04 мая 2011

В настоящее время у меня на ноутбуке работает приложение maven, использующее Eclipse Galileo и m2Eclipse, приложение запускается и работает нормально.

Я только что проверил код из svn на своем рабочем столе и импортировал его в Eclipse.Helios & m2Eclipse (на этот раз работает на 64-битных окнах)

Однако, когда я запускаю сервер и приложение, при переходе к своему веб-приложению я получаю следующую ошибку:

org.apache.tiles.impl.CannotRenderException: ServletException including path '/WEB-INF/views/index2.jsp'.
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:691)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:643)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:626)
    at org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:322)
    at org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:100)
    at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1060)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:798)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:473)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:466)
    at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:315)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:179)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
...
Caused by: java.lang.ClassCastException: org.apache.el.ExpressionFactoryImpl cannot be cast to javax.el.ExpressionFactory
    at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:180)
    at javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:107)
    at org.apache.jasper.compiler.PageInfo.<init>(PageInfo.java:78)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:109)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:372)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:352)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:339)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
    at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:473)
    at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
    at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
    at org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241)
    ... 36 more

У меня былнесколько проблем с прорезыванием, из-за которых моя библиотека Maven_dependency не была включена в параметры сборки развертывания моих предпочтений (ранее «Модули Java EE» в Eclipse pre-Helios), но она запускается и не может найти ничего об этой ошибке.

Сначала я подумал, что, поскольку я скачал все файлы JAR из mvn в чистый репозиторий, возможно, это что-то другое?Я не понимаю, как было бы использовать два разных пакета org.apache.el .. и javax.el ... для этого класса?

1 Ответ

1 голос
/ 20 мая 2011

Мне удалось докопаться до этого.Это похоже на проблему здесь Как предотвратить дублирование jar сервлета с помощью eclipse + m2eclipse

Проблема заключалась в том, что при использовании M2Eclipse библиотека зависимостей maven включена в WAR (если она построена из Eclipseили включается, если вы развертываете приложение в Tomcat в Eclipse), и хотя сборки maven по-прежнему ведут себя правильно, M2Eclipse не учитывает область действия библиотек, поэтому, если вы «предоставили» зависимые области, они все равно будут развернуты, так что выможно получить эти конфликты.

вы можете увидеть более подробную информацию здесь: Как предотвратить дублирование баночки сервлета с помощью eclipse + m2eclipse

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