1

I currently have a maven webapp running on my laptop using Eclipse Galileo & m2Eclipse, the application starts and runs fine.

I have just checked out the code from svn on to my desktop and imported it into Eclipse Helios & m2Eclipse (this time running on 64bit windows)

However, when I start the server and application I get the following error when I navigate to my webapp:

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

I had a few teething problems whereby my Maven_dependency library wasnt being included in the Deployment Assembly options of my preferences (formerly "Java EE Modules" in Eclipse pre-Helios) but it is starting, and cannot find anything about this error.

My first thought is that as I have downloaded all the JARs from mvn to a clean repository it might be pulling something different down? I can't see how it would be using the two different org.apache.el.. and javax.el... packages for this class?

rhinds
  • 9,976
  • 13
  • 68
  • 111

1 Answers1

1

I have managed to get to the bottom of this. It is similar to the problem here How to prevent duplicate servlet jar using eclipse+m2eclipse

The problem was that using M2Eclipse, the maven dependency library is included in the WAR (if built from Eclipse, or included if you are deploying the app to Tomcat within Eclipse) and whilst the maven builds all still behave correctly M2Eclipse does not respect the scope of libraries, so if you have "provided" scoped dependencies, they will still be deployed, so you can get these clashes.

you can see more details here: How to prevent duplicate servlet jar using eclipse+m2eclipse

Community
  • 1
  • 1
rhinds
  • 9,976
  • 13
  • 68
  • 111