Tomcat5.5メモ
ひょんなことからTomcat5.5を触っているのだけど、日頃の行いが悪いせいか落とし穴に落ちまくっていたので、経験則的に「これでとりあえず動く」ような設定をメモっておきます。ほぼ完全に自分用のメモです。
補足すると、「JSP fileにて、c:forEach with EL expressionをするとerrorでまくり」になりました。
主なエラーは以下のものです。
- java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext
- java.lang.NoClassDefFoundError: javax/el/ValueExpression
- org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application
- org.apache.jasper.compiler.TagLibraryInfoImpl createAttribute
- java.lang.ClassNotFoundException: org.apache.taglibs.standard.tag.rt.core.UrlTag
では、各設定について...
- pom.xml
<dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.4</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.1.2</version> </dependency> <dependency> <groupId>taglibs</groupId> <artifactId>standard</artifactId> <version>1.1.2</version> </dependency>
- web.xml (root element only)
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src/main/java"/> <classpathentry kind="src" path="src/main/resources"/> <classpathentry kind="src" output="target/test-classes" path="src/test/java"/> <classpathentry kind="src" output="target/test-classes" path="src/test/resources"/> <classpathentry exported="true" kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"> <attributes> <attribute name="owner.project.facets" value="java"/> </attributes> </classpathentry> <classpathentry kind="output" path="target/classes"/>
- .settings/org.eclipse.wst.common.component
<?xml version="1.0" encoding="UTF-8"?> <project-modules id="moduleCoreId" project-version="1.5.0"> <wb-module deploy-name="hogehoge-webapp"> <wb-resource deploy-path="/" source-path="/src/main/webapp"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/> <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/> <property name="context-root" value="hogehoge-webapp"/> <property name="java-output-path" value="/hogehoge-webapp/build/classes"/> </wb-module> </project-modules>
<?xml version="1.0" encoding="UTF-8"?> <faceted-project> <runtime name="Apache Tomcat v5.5"/> <fixed facet="wst.jsdt.web"/> <fixed facet="java"/> <fixed facet="jst.web"/> <installed facet="java" version="1.6"/> <installed facet="jst.web" version="2.4"/> <installed facet="wst.jsdt.web" version="1.0"/> </faceted-project>
多分、過不足あるかとは思うのだけど、一応まともに動いた設定をメモりたかったので貼っておく。