所以我用JSTL工作在OSGi中,在双子座运行。 而我得到以下异常,当我尝试访问的URL我servlet
: -
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /WEB-INF/login.jsp (line: 3, column: 66) Unable to read TLD "META-INF/c.tld" from JAR file "file:/D:/OSGi%20Runtime/Gemini/gemini-web/dep/com.springsource.javax.servlet.jsp.jstl-1.2.0.v20110728.jar": org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV
不过,我已签,我已经在我运行时所需的所有包。 相关的捆绑,我已是: -
71 ACTIVE javax.servlet_3.0.0.v201103241009
73 ACTIVE javax.el_2.2.0.v201105051105
74 ACTIVE javax.servlet.jsp_2.2.0.v201103241009
75 ACTIVE com.springsource.javax.servlet.jsp.jstl_1.2.0.v20110728
121 ACTIVE com.springsource.org.apache.taglibs.standard_1.1.2.v20110517
还有更多的捆绑,但这些都是相关的人。 所以,我不明白什么地方出了错。
从春源库 ,从那里我下载的包,很明显的是, org.apache.taglibs.standard捆绑- 捆绑121,包含JstlCoreTLV class
。 所以,不知道,这是怎么回事的。
这里是我的JSP
头我使用(以防万一,它是相关的): -
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
我正在使用: -
-
Servlet 3.0
-
JSP 2.2
-
Gemini Runtime 2.1
-
JSTL 1.2.0
更新: -
下面所描述的问题似乎解决了,现在我没有得到任何警告,如下图所示。 那是因为,我是有这个taglibs.standard_1.1.2
- (121包 ),这是不兼容给他人。 所以,我删除了它,并警告就走了。
所以,你可以忽略不管有没有从这里开始。 但是,上面的问题仍然存在。 我仍然收到这个JasperException
。 可能这将进一步帮助,因为问题域一点点的感谢减少到现在的从@BalusC提出的宝贵意见。
之后,这部分解决。 所以,你可以忽略它: -
此外,我不知道,我有OSGi的JSTL包的版本- Bundle 75
,与其他捆绑兼容- javax.el
, taglibs
, servlets
等,还是不行。 因为我使用JSTL 1.2.1
,但我无法得到捆JSTL 1.2.1
。 我得到的是我用束( JSTL 1.2.0
)。 为什么这是困扰我是因为这些类型的邮件上来的,当我开始我的应用程序: -
Jan 22, 2013 7:14:05 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/core is already defined
Jan 22, 2013 7:14:05 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/core is already defined
Jan 22, 2013 7:14:05 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt_rt is already defined
Jan 22, 2013 7:14:05 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jstl/fmt is already defined
Jan 22, 2013 7:14:05 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/fmt is already defined
Jan 22, 2013 7:14:05 PM org.apache.catalina.startup.TaglibUriRule body
INFO: TLD skipped. URI: http://java.sun.com/jsp/jstl/functions is already defined
正如你可以看到,上面显示有两个不同的网址: -
- URI:
http://java.sun.com/jstl/core
- URI:
http://java.sun.com/jsp/jstl/core
现在,据我所知这两个网址,不属于同一个JSTL
的版本。 所以,可能是提出一些问题? 什么可以为他们来的原因是什么? 我刚才用一个JSTL bundle
。