2011-06-15 59 views
2

我有Tomcat 5.5和Java EE webapp庫的問題。我使用Gradle進行依賴管理,我使用的是JSP API 2.0,Servlet API 2.4和JSTL 1.1。Tomcat 5.5 Servlet/JSP/JSTL依賴關係

我得到一個org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml or the jar files deployed with this application

http://www.mularien.com/blog/2008/04/24/how-to-reference-and-use-jstl-in-your-web-application/,這意味着JSTL實現丟失。

這裏是我的web.xml的樣子:

<web-app 
    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" 
    version="2.4"> 


這是我引用JSTL庫:

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


通訊的依賴關係構建文件:

providedCompile group: 'javax.servlet', name: 'servlet-api', version: '2.4' 
providedCompile group: 'javax.servlet', name: 'jsp-api', version: '2.0' 
compile group: 'javax.servlet', name: 'jstl', version: '1.1.+' 


在Tomcat中/普通/庫,我有這些罐子:

Tomcat 5.5\common\lib 

23.09.2002 12:23   45˙386 activation.jar 
05.03.2007 17:26   112˙341 commons-el.jar 
05.03.2007 17:26   1˙213˙732 jasper-compiler-jdt.jar 
05.03.2007 17:26   408˙133 jasper-compiler.jar 
05.03.2007 17:26   76˙844 jasper-runtime.jar 
05.03.2007 17:26   50˙952 jsp-api.jar 
29.08.2005 22:28   358˙085 LOG4J-1.2.12.JAR 
12.10.2004 13:20   347˙137 mail-1.3.2.jar 
05.03.2007 17:26   163˙490 naming-factory-dbcp.jar 
05.03.2007 17:26   31˙963 naming-factory.jar 
05.03.2007 17:26   47˙730 naming-resources.jar 
05.03.2007 17:26   99˙235 servlet-api.jar 


在內置WAR,唯一相關的JAR文件是 jstl-1.1.2.jar

回答

4

我的猜測是,你必須包括 API和jstl的impl在你的戰爭檔案中。周圍幾乎沒有jstl實現,例如herehere。不幸的是,我不知道如何強制gradle爲你做這件事。

+0

這樣做。謝謝! – prasopes 2011-06-15 08:15:56

1

我想你可以下載c.tld(我有它,如果你願意,我可以在任何地方爲您上傳)和這樣的聲明它在web.xml:

<jsp-config> 
    <taglib> 
     <taglib-uri>/WEB-INF/c.tld</taglib-uri> 
     <taglib-location>/WEB-INF/c.tld</taglib-location> 
    </taglib> 
</jsp-config> 

而且在JSP還有:

<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %> 
0
compile "javax.servlet:com.springsource.javax.servlet.jsp.jstl:1.1.2"; 

這條線將增加對JSTL的gradle這個依賴。