java - Could not obtain JSP 2.1 ExpressionFactory :jsp EL -
i have both gwt 2.5.1, spring 3.2 , tiles in (maven) project. works fine long start project mvn jetty:run-war.
as try start project mvn gwt:run devmode. throws following error message:
2013-10-07 14:49:31,676 [main] warn org.springframework.web.servlet.view.tiles3.tilesconfigurer - not obtain jsp 2.1 expressionfactory ... , this:
java.lang.nosuchmethoderror: javax.servlet.jsp.jspfactory.getjspapplicationcontext(ljavax/servlet/servletcontext;)ljavax/servlet/jsp/jspapplicationcontext; @ org.springframework.web.servlet.view.tiles3.tilesconfigurer$tileselactivator.createevaluator(tilesconfigurer.java:395) @ org.springframework.web.servlet.view.tiles3.tilesconfigurer$springtilescontainerfactory.createelevaluator(tilesconfigurer.java:357) @ org.springframework.web.servlet.view.tiles3.tilesconfigurer$springtilescontainerfactory.createattributeevaluatorfactory(tilesconfigurer.java:352) @ org.apache.tiles.factory.basictilescontainerfactory.createcontainer(basictilescontainerfactory.java:88) @ org.springframework.web.servlet.view.tiles3.tilesconfigurer$springtilescontainerfactory.createcontainer(tilesconfigurer.java:277) @ org.apache.tiles.startup.abstracttilesinitializer.createcontainer(abstracttilesinitializer.java:114) @ org.apache.tiles.startup.abstracttilesinitializer.initialize(abstracttilesinitializer.java:64) @ org.springframework.web.servlet.view.tiles3.tilesconfigurer.afterpropertiesset(tilesconfigurer.java:252) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.invokeinitmethods(abstractautowirecapablebeanfactory.java:1541) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.initializebean(abstractautowirecapablebeanfactory.java:1479) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.docreatebean(abstractautowirecapablebeanfactory.java:521) @ org.springframework.beans.factory.support.abstractautowirecapablebeanfactory.createbean(abstractautowirecapablebeanfactory.java:458) @ org.springframework.beans.factory.support.abstractbeanfactory$1.getobject(abstractbeanfactory.java:295) @ org.springframework.beans.factory.support.defaultsingletonbeanregistry.getsingleton(defaultsingletonbeanregistry.java:223) @ org.springframework.beans.factory.support.abstractbeanfactory.dogetbean(abstractbeanfactory.java:292) @ org.springframework.beans.factory.support.abstractbeanfactory.getbean(abstractbeanfactory.java:194) @ org.springframework.beans.factory.support.defaultlistablebeanfactory.preinstantiatesingletons(defaultlistablebeanfactory.java:628) @ org.springframework.context.support.abstractapplicationcontext.finishbeanfactoryinitialization(abstractapplicationcontext.java:932) @ org.springframework.context.support.abstractapplicationcontext.refresh(abstractapplicationcontext.java:479) @ org.springframework.web.servlet.frameworkservlet.configureandrefreshwebapplicationcontext(frameworkservlet.java:651) @ org.springframework.web.servlet.frameworkservlet.createwebapplicationcontext(frameworkservlet.java:599) @ org.springframework.web.servlet.frameworkservlet.createwebapplicationcontext(frameworkservlet.java:665) @ org.springframework.web.servlet.frameworkservlet.initwebapplicationcontext(frameworkservlet.java:518) @ org.springframework.web.servlet.frameworkservlet.initservletbean(frameworkservlet.java:459) @ org.springframework.web.servlet.httpservletbean.init(httpservletbean.java:136) @ javax.servlet.genericservlet.init(genericservlet.java:241) @ org.mortbay.jetty.servlet.servletholder.initservlet(servletholder.java:433) @ org.mortbay.jetty.servlet.servletholder.dostart(servletholder.java:256) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:39) @ org.mortbay.jetty.servlet.servlethandler.initialize(servlethandler.java:616) @ org.mortbay.jetty.servlet.context.startcontext(context.java:140) @ org.mortbay.jetty.webapp.webappcontext.startcontext(webappcontext.java:1220) @ org.mortbay.jetty.handler.contexthandler.dostart(contexthandler.java:513) @ org.mortbay.jetty.webapp.webappcontext.dostart(webappcontext.java:448) @ com.google.gwt.dev.shell.jetty.jettylauncher$webappcontextwithreload.dostart(jettylauncher.java:468) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:39) @ org.mortbay.jetty.handler.handlerwrapper.dostart(handlerwrapper.java:130) @ org.mortbay.jetty.handler.requestloghandler.dostart(requestloghandler.java:115) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:39) @ org.mortbay.jetty.handler.handlerwrapper.dostart(handlerwrapper.java:130) @ org.mortbay.jetty.server.dostart(server.java:222) @ org.mortbay.component.abstractlifecycle.start(abstractlifecycle.java:39) @ com.google.gwt.dev.shell.jetty.jettylauncher.start(jettylauncher.java:672) @ com.google.gwt.dev.devmode.dostartupserver(devmode.java:509) @ com.google.gwt.dev.devmodebase.startup(devmodebase.java:1093) @ com.google.gwt.dev.devmodebase.run(devmodebase.java:836) @ com.google.gwt.dev.devmode.main(devmode.java:311) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:39) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:25) @ java.lang.reflect.method.invoke(method.java:597) @ com.intellij.rt.execution.application.appmain.main(appmain.java:120) please find web.xml below:
<web-app xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemalocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="myclient_mdb" version="2.5"> <display-name>myclient memberdatabase</display-name> <!--configuration--> <context-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/spring-security.xml, /web-inf/applicationcontext.xml</param-value> </context-param> <filter> <filter-name>hibernatefilter</filter-name> <filter-class>org.springframework.orm.hibernate3.support.opensessioninviewfilter</filter-class> <init-param> <param-name>sessionfactorybeanname</param-name> <param-value>hibernatesessionfactory</param-value> </init-param> </filter> <filter> <filter-name>springsecurityfilterchain</filter-name> <filter-class>org.springframework.web.filter.delegatingfilterproxy</filter-class> </filter> <!--spring security filter--> <filter-mapping> <filter-name>hibernatefilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter-mapping> <filter-name>springsecurityfilterchain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--context loader--> <listener> <listener-class>org.springframework.web.context.contextloaderlistener</listener-class> </listener> <!-- servlets --> <servlet> <servlet-name>springgwtremoteserviceservlet</servlet-name> <servlet-class>org.spring4gwt.server.springgwtremoteserviceservlet</servlet-class> </servlet> <servlet> <servlet-name>mvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class> <init-param> <param-name>contextconfiglocation</param-name> <param-value>/web-inf/applicationcontext.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <!-- mapping --> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/member/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>springgwtremoteserviceservlet</servlet-name> <url-pattern>/ui/springgwtservices/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/account.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/login.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/logout.html</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>mvc-dispatcher</servlet-name> <url-pattern>/loginfailed.html</url-pattern> </servlet-mapping> <!-- default page serve --> <welcome-file-list> <welcome-file>/login.html</welcome-file> </welcome-file-list> </web-app> please find pom.xml below:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <!-- pom file generated gwt webappcreator --> <modelversion>4.0.0</modelversion> <groupid>com.mycompany.myclient.mdb</groupid> <artifactid>ui</artifactid> <packaging>war</packaging> <version>1.0-snapshot</version> <name>myclient memberdatabase</name> <properties> <!-- convenience property set gwt version --> <gwtversion>2.5.1</gwtversion> <!-- gwt needs @ least java 1.5 --> <webappdirectory>${project.build.directory}/${project.build.finalname}</webappdirectory> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <java.version>1.6</java.version> <spring.version>3.2.4.release</spring.version> <spring-security.version>3.2.0.m1</spring-security.version> <cglib.version>2.2.2</cglib.version> <contextpath>mdb</contextpath> </properties> <dependencies> <!--logging--> <dependency> <groupid>log4j</groupid> <artifactid>log4j</artifactid> <version>1.2.14</version> </dependency> <!--gwt--> <dependency> <groupid>com.google.gwt</groupid> <artifactid>gwt-servlet</artifactid> <version>${gwtversion}</version> <scope>runtime</scope> </dependency> <dependency> <groupid>com.google.gwt</groupid> <artifactid>gwt-user</artifactid> <version>${gwtversion}</version> <scope>provided</scope> </dependency> <!--testing--> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.7</version> <scope>test</scope> </dependency> <!--servlet--> <dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> <version>1.0.0.ga</version> <!--<scope>test</scope>--> </dependency> <dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> <version>1.0.0.ga</version> <classifier>sources</classifier> <!--<scope>test</scope>--> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> <version>4.3.1.final</version> </dependency> <!-- spring core & mvc --> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-context</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-web</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-webmvc</artifactid> <version>${spring.version}</version> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-orm</artifactid> <version>${spring.version}</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupid>org.springframework</groupid> <artifactid>spring-test</artifactid> <version>${spring.version}</version> <type>jar</type> <scope>test</scope> </dependency> <!-- spring security --> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-core</artifactid> <version>${spring-security.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-web</artifactid> <version>${spring-security.version}</version> </dependency> <dependency> <groupid>org.springframework.security</groupid> <artifactid>spring-security-config</artifactid> <version>${spring-security.version}</version> </dependency> <!-- cglib @configuration --> <dependency> <groupid>cglib</groupid> <artifactid>cglib-nodep</artifactid> <version>${cglib.version}</version> <scope>runtime</scope> </dependency> <!-- servlet spec --> <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.1</version> <scope>compile</scope> </dependency> <dependency> <groupid>javax.servlet</groupid> <artifactid>jstl</artifactid> <version>1.2</version> </dependency> <dependency> <groupid>com.sun.el</groupid> <artifactid>el-ri</artifactid> <version>1.0</version> </dependency> <dependency> <groupid>org</groupid> <artifactid>spring4gwt</artifactid> <version>0.0.1</version> </dependency> <dependency> <groupid>commons-dbcp</groupid> <artifactid>commons-dbcp</artifactid> <version>1.4</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-entitymanager</artifactid> <version>3.3.2.ga</version> </dependency> <dependency> <groupid>org.hsqldb</groupid> <artifactid>hsqldb</artifactid> <version>2.2.9</version> <scope>test</scope> </dependency> <dependency> <groupid>mysql</groupid> <artifactid>mysql-connector-java</artifactid> <!-- <version>5.0.8</version> --> <version>5.1.10</version> </dependency> <dependency> <groupid>commons-codec</groupid> <artifactid>commons-codec</artifactid> <version>1.6</version> </dependency> <!--tiles--> <dependency> <groupid>org.apache.tiles</groupid> <artifactid>tiles-extras</artifactid> <version>3.0.1</version> </dependency> <dependency> <groupid>org.slf4j</groupid> <artifactid>slf4j-log4j12</artifactid> <version>1.5.2</version> </dependency> </dependencies> <build> <finalname>mdb</finalname> <!-- generate compiled stuff in folder used developing mode --> <outputdirectory>${webappdirectory}/web-inf/classes</outputdirectory> <plugins> <!-- gwt maven plugin --> <plugin> <groupid>org.codehaus.mojo</groupid> <artifactid>gwt-maven-plugin</artifactid> <version>2.5.1</version> <executions> <execution> <goals> <goal>compile</goal> <goal>test</goal> <goal>i18n</goal> <goal>generateasync</goal> </goals> </execution> </executions> <!-- plugin configuration. there many available options, see gwt-maven-plugin documentation @ codehaus.org --> <configuration> <runtarget>ui.html</runtarget> <hostedwebapp>${webappdirectory}</hostedwebapp> <i18nmessagesbundle>com.mycompany.myclient.mdb.ui.client.messages</i18nmessagesbundle> </configuration> </plugin> <!-- copy static web files before executing gwt:run --> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-war-plugin</artifactid> <version>2.3</version> <executions> <execution> <phase>compile</phase> <goals> <goal>exploded</goal> </goals> </execution> </executions> <configuration> <webappdirectory>${webappdirectory}</webappdirectory> </configuration> </plugin> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.5</source> <target>1.5</target> </configuration> </plugin> <plugin> <groupid>org.apache.tomcat.maven</groupid> <artifactid>tomcat7-maven-plugin</artifactid> <version>2.1</version> <configuration> <server>svr4-worker1</server> <url>http://svr4.dmz.mycompany.com:8180/manager</url> <update>true</update> <path>${contextpath}</path> </configuration> </plugin> </plugins> <testresources> <testresource> <directory>src/main/webapp/web-inf</directory> </testresource> <testresource> <directory>src/test/resources</directory> </testresource> </testresources> </build> </project> i belive has integrated servlet container of gwt. don't know how resolve this. give me hint please?
thanks lot!
the probable solution include el-ri.jar library
<dependency> <groupid>com.sun.el</groupid> <artifactid>el-ri</artifactid> <version>1.0</version> </dependency>
Comments
Post a Comment