Симптомы :
Любые страницы JSP в проекте выдают сообщения об ошибках, как показано ниже:
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 5 in the jsp file: /check.jspf
Generated servlet error:
*Duplicate local variable usr*
An error occurred at line: 5 in the jsp file: /check.jspf
Generated servlet error:
*Duplicate local variable path*
An error occurred at line: 5 in the jsp file: /check.jspf
Generated servlet error:
*Duplicate local variable pos*
An error occurred at line: 5 in the jsp file: /check.jspf
Generated servlet error:
*Duplicate local variable hSession*
An error occurred at line: 5 in the jsp file: /check.jspf
Generated servlet error:
*Duplicate local variable testRegister*
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
com.byinsight.logic.EncodingFilter.doFilter(EncodingFilter.java:22)
Среда разработки :
- JDK 1.5
- Tomcat 5.0
- IDE Eclipse 3.3
Причины :
Я былиспользование jsp-config
для включения JSPF в каждый файл JSP.web.xml
ниже:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<include-prelude>/check.jspf</include-prelude>
</jsp-property-group>
</jsp-config>
Включенный файл check.jspf
.Код в JSPF приведен ниже:
<%@page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@page import="com.byinsight.model.User"%>
<%@page import="javax.servlet.http.HttpSession"%>
<%
//String str = (String)session.getAttribute("login");
User usr = (User)session.getAttribute("user");
String path = request.getServletPath();
int pos = path.indexOf("index.jsp");
HttpSession hSession = request.getSession(false);
String testRegister = (String)hSession.getAttribute("register");
if (-1 == pos) {
if ((null == usr) && (!testRegister.equals("login"))) {
throw new RuntimeException("you have to login first ");
}
}
%>
Проект хорошо работает в Eclipse, но при развертывании WAR в системе продукта появляется ошибка.Я не понимаю, что означает сообщение об ошибке, здесь нет повторяющихся переменных!Кто-нибудь знает?Большое спасибо!