2012-07-15 4 views
0

내가 뭘 잘못 했습니까 ??최종 변수가 JSP로 작동하지 않습니다.

나는 7

내 JSP 코드 [... \ webapps에 \ 테스트 \의 index.jsp를]

<jsp:useBean id="Counter" scope="session" class="aaa.Counter" /> 
<html> 
<title>sfcsv</title> 

<% 
    try{ 
     int x = Counter.read_count(),z = Counter.get_id(); 
     if(x%2==0) 
      out.println(x + " = even"); 
     else 
      out.println(x + " = odd"); 

     out.println(z); 
    }catch(Exception e){ 
    out.println(e); 
    } 
%> 


</html> 

자바 코드 [.. \ 승리의 서비스로 아파치 톰캣 7을 실행하고 웹 어플리케이션의 \ 테스트 \ WEB-INF \ 클래스 \ AAA \ Counter.java]

package aaa; 

public class Counter { 

    private int count; 
    private static int instance_counter; 
    private final int id; 

    public Counter(){ 
     instance_counter ++; 
     id = instance_counter; 
     count = 0; 
    } 

    public int read_count(){ 
     return count++; 
    } 

    public int get_id(){ 
     return id; 
    } 

} 

예상 출력 :

24 = even 1 
,617,451 내가 얻고 있었다

출력 :

24 = even  

또는

HTTP Status 500 - Unable to compile class for JSP: An error occurred at line: 8 in the jsp file: /index.jsp The method  get_id() is undefined for the type Counter 5: 6: <% 7: try{ 8: int x = Counter.read_count(),z = Counter.get_id(); 9:  if(x%2==0) 10: out.println(x + " = even"); 11: else Stacktrace: 

type Exception report 

message Unable to compile class for JSP: An error occurred at line: 8 in the jsp file: /index.jsp The method get_id()  is undefined for the type Counter 5: 6: <% 7: try{ 8: int x = Counter.read_count(),z = Counter.get_id(); 9: if(x%2==0)  10: out.println(x + " = even"); 11: else Stacktrace: 

description The server encountered an internal error (Unable to compile class for JSP: An error occurred at line: 8 in  the jsp file: /index.jsp The method get_id() is undefined for the type Counter 5: 6: <% 7: try{ 8: int x =  Counter.read_count(),z = Counter.get_id(); 9: if(x%2==0) 10: out.println(x + " = even"); 11: else Stacktrace:) that  prevented it from fulfilling this request. 

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: 8 in the jsp file: /index.jsp 
The method get_id() is undefined for the type Counter 
5: 
6: <% 
7: try{ 
8:  int x = Counter.read_count(),z = Counter.get_id(); 
9:  if(x%2==0) 
10:    out.println(x + " = even"); 
11:   else 


Stacktrace: 
    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:102) 
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:331) 
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:469) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:378) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) 
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs. 

Apache Tomcat/7.0.29 

편집 : 컴퓨터를 다시 시작에 문제는 이미 문제가 해결

+0

Counter 클래스가 업데이트되었는지 확인하십시오 귀하의 서버 webapp에? – SJuan76

+0

java 파일을 컴파일 한 후 tomcat 서버를 다시 시작했습니다. 그 밖의 다른 작업은 무엇입니까? – Soumy

+0

나는 이것을 테스트하고 정상적으로 작동합니다. 비록 Tomcat 6 + JDK 1.6이긴하지만.get_id()를 포함하도록 전쟁을 재건 했습니까? – Reimeus

답변

1

을 사라 그러나 여기에서 적절한 옵션은 모든 클래스와 JSP 파일을 다시로드하거나 다시 컴파일하여 어떤 일이 벌어 졌는지 이해하는 데 도움이됩니다.

Java 클래스 새로 고침 - 클래스를 변경 한 후에는 반드시 컴파일해야합니다. 웹 응용 프로그램 컨텍스트 (기본값은 false)에 대한 reloadable 옵션도 참조하십시오. true로

설정은 카탈은 변경/WEB-INF가/클래스 /와/WEB-INF가/lib 디렉토리에서 클래스를 모니터링하고 자동으로 변경이 감지되면 웹 응용 프로그램을 다시로드합니다.


새로 고침 JSP 파일 - development 변수에 대한 자세한 내용은 Tomcat Jasper docs를 참조하십시오이와 modificationTestInterval 변수 (4 seconds 기본값)와 (true 그래서 난 생각에 기본값이는 귀하의 경우 값이다) JSP 파일의 변경 사항을 확인하고 필요한 경우 컴파일하는 간격을 설정할 수 있습니다. 둘 다 보통 $CATALINA_BASE/conf/web.xml으로 설정됩니다.

개발 모드에서 재스퍼가 사용됩니까? true 인 경우 JSP가 수정 여부를 확인하는 빈도는 modificationTestInterval 매개 변수를 통해 지정할 수 있습니다. true 또는 false, 기본값은 true입니다. 와

+0

고마워. 이 지시는 정확히 제가 부족한 것입니다. – Soumy

0

나는 당신의 code.I 당신의 IDE가 즉의 .class 파일이 제대로 생성되지 (또는 생성되지 않음)되어 올바르게 프로젝트를 빌드하지 않는 생각이 아니 문제를 생각합니다. 따라서이 파일을 수동으로 컴파일하고 생성 된 .class 파일을 프로젝트의 적절한 폴더에 저장 한 다음 서버를 빌드하고 다시 시작하십시오. 새 .JAR 파일 빌드를 확인하십시오.

+0

프로세스에 대한 이해를 얻기 위해 아직 ide를 사용하지 않습니다. 하지만 답장을 보내 주셔서 감사합니다 – Soumy

+0

ur welcome friend !!! –

관련 문제