Я скачал последнюю версию tomcat 7, т.е. 7.0.23 от 16.01.2011. Я обнаружил, что ни один из моих компонентов библиотеки тегов jakarta не работает в jsps. Точка отказа одинакова и последовательна в каждом jsp. Это
org.apache.taglibs.input.Select _jspx_th_input_005fselect_005f0 = (org.apache.taglibs.input.Select)_jsp_instancemanager.newInstance("org.apache.taglibs.input.Select", this.getClass().getClassLoader());
Я также написал пользовательский тег, чтобы увидеть, работает ли он, у меня была такая же проблема и для этого jsp.
com.ah.util.customtags.SelectTag _jspx_th_hirezon_005fform_005fselect_005f0 = (com.ah.util.customtags.SelectTag)_jsp_instancemanager.newInstance("com.ah.util.customtags.SelectTag", this.getClass().getClassLoader());
Код JSP
<%@ page extends="com.ah.servlets.BaseJSPServlet"%>
<%@ taglib uri="/WEB-INF/hirezon_form.tld" prefix="hirezon_form" %>
<html>
<body>Test tags
<%
System.setProperty("org.apache.jasper.Constants.USE_INSTANCE_MANAGER_FOR_TAGS", "true");
%>
<hirezon_form:select count="100"/>
</body>
</html>
Код для класса CustomTagSupport:
package com.ah.util.customtags;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class SelectTag extends TagSupport {
String count;
public String getCount() {
return count;
}
public void setCount(String count) {
this.count = count;
}
public int doStartTag() throws JspException {
// This means the JSP must evaluate the contents of any CHild tags
// in this tag;
return EVAL_BODY_INCLUDE;
}
// This method is called when the JSP encounters the end of te tag
// implemented by this class
public int doEndTag() throws JspException {
String sum = "200000";
try {
pageContext.getOut().write("The Sum of first " + count + " numbers is " + sum);
} catch (IOException e) {
throw new JspException("Fatal Error: HelloTag could'nt write to the JSP out");
}
// This return type tells the JSP page to continue processing
// the rest of the page
return EVAL_PAGE;
}
}
Есть ли известная ошибка в Tomcat 7.0.23? Я провел много исследований, а также попытался установить для свойства USE_INSTANCE_MANAGER_FOR_TAGS значение true, но я все еще получаю ту же ошибку. Любые предложения будут оценены, спасибо