Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

Tomcat6を使ってMavenでJSTL 1.2をリポジトリからダウンロードして作ったアプリをデプロイするときのもろもろ

JSTL 1.2は標準のリポジトリに存在しない。

Java.netのGlassFishリポジトリから取得する。

ちなみにApache TaglibsのJSTLは開発が終了しているので注意する。

<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">
	<repositories>
		<repository>
			<id>glassfish</id>
			<name>GlassFish Repository</name>
			<url>http://download.java.net/maven/glassfish/</url>
		</repository>
	</repositories>

...

		<dependency>
			<groupId>org.glassfish.web</groupId>
			<artifactId>jstl-impl</artifactId>
			<version>1.2</version>
			<exclusions>
				<exclusion>
					<groupId>javax.el</groupId>
					<artifactId>el-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.servlet.jsp</groupId>
					<artifactId>jsp-api</artifactId>
				</exclusion>
				<exclusion>
					<groupId>javax.servlet</groupId>
					<artifactId>servlet-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
</projects>


TomcatのライブラリにあるJARまでデプロイすると「TLD "META-INF/c.tld" を読み込めません」というエラーになる。

だからMavenのpom.xmlでexcludeを設定する必要がある。

このエラーの解決はhttp://d.hatena.ne.jp/hajimeni/20080806/1218005381を参考にさせてもらいました。


JSPに以下を記述して利用する。

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

JARだけダウンロードするときはここから。
https://jstl.dev.java.net/