2013-10-07 7 views
1

이전에 다른 사람이 작업 한 자바 웹 응용 프로그램을 작성 중이며이 사람이 응용 프로그램의 소스 코드를 제공했습니다. 나는 JSP를 렌더링하지 않습니다이 응용 프로그램을 일부 변경하고 바람둥이에 (7.0.35)를 배포하려고 나는 다음과 같은 오류 얻을 경우 문제는 다음과 같습니다 또한JSP 컴파일 문제

JSP Compilation Error

을 나는 것을 알 수 이 welcome.jsp의 클래스 파일은 작성되지 않습니다.

응용 프로그램을 작동시키는 유일한 방법은 새 버전의 tomcat을 다시 설치 한 다음 원본 소스 코드를 작성, 배포 및 액세스하는 것입니다. 해당 코드를 빌드하고 배포하고 제대로 컴파일 된 JSP에 액세스 할 때 .class 및 .java 파일이 tomcat 작업 디렉토리에 만들어집니다.

그런 다음 원래 소스 코드에 모든 변경 사항을 붙여넣고 수정 된 응용 프로그램을 다시 배포하면 JSP 페이지에 해당하는 클래스 및 java 파일이 원래 응용 프로그램을 배포하고 액세스 한 후에 만들어 졌기 때문에 제대로 작동합니다.

또한 JSP를 수정하려고해도 동일한 오류가 나타납니다.

나는 여기에 무슨 일이 일어나고 있는지 전혀 모른다. 어떤 사람이 나를 도와 줄 수 있다면 좋을 것이다. 현재 사용하고있는 JDK 버전은 1.6.0_38-b05입니다. Tomcat은 또한 동일한 JDK 버전을 가리키고 있으며 JDK 또는 JRE의 다른 버전은 내 컴퓨터에 설치되어 있지 않습니다.

다음
<!DOCTYPE html> 
    <%@page import="com.xyz.toolkit.utils.FormConstant"%> 
    <%@page import="org.jasig.cas.client.util.AbstractCasFilter"%> 
    <%@page import="org.jasig.cas.client.validation.Assertion"%> 
    <%@page import="org.jasig.cas.client.util.AssertionHolder"%> 
    <%@page import="java.util.Iterator"%> 
    <%@page import="java.util.List"%> 
    <%@page import="java.util.Map"%> 
    <%@ taglib uri="/WEB-INF/tld/AccessValidateHandlerTag.tld" prefix="toolkit"%> 
    <html> 
    <head> 
    <title>ToolKit</title> 
    <meta http-equiv="Content-Type" content="text/html CHARSET=UTF-8" /> 
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> 
    <meta http-equiv="Pragma" content="no-cache" /> 
    <meta http-equiv="Expires" content="0" /> 
    <link href="css/jquery-ui-1.10.1.custom.css" type="text/css" rel="stylesheet" /> 
    <link href="css/jquery.ui.tabs.css" type="text/css" rel="stylesheet" /> 
    <link href="css/migration_toolkit.css" type="text/css" rel="stylesheet" /> 
    <script type="text/javascript" src="js/plugins/jquery-1.9.1.js"></script> 
    <script type="text/javascript" src="js/plugins/jquery.validate.js"></script> 
    <script type="text/javascript" src="js/plugins/jquery.dateFormat-1.0.js"></script> 
    <script type="text/javascript" src="js/plugins/jquery-ui-1.10.1.custom.js">   </script> 
    <script type="text/javascript" src="js/plugins/commons.js"></script> 
    <script type="text/javascript" src="js/login.js"></script> 

    <link href="css/jquery.jqplot.css" type="text/css" rel="stylesheet" /> 


    <script type="text/javascript" src="js/plugins/jquery.jqplot.js"></script> 
    <script type="text/javascript" src="js/plugins/jquery.blockUI.js"></script> 
    <script type="text/javascript" src="js/plugins/jqplot.pieRenderer.js"></script> 
    </head> 
    <% 
    String roleAdmin = FormConstant.ROLE_ADMIN + "," + FormConstant.ROLE_ALL; 
String roleUser = FormConstant.ROLE_USER + "," + FormConstant.ROLE_ALL; 
    %> 
    <body> 
<jsp:include page="header.jsp" /> 
<div id="tabs"> 
    <div style="padding-bottom: 10px;"> 
     <div id="welcome_msg"> 
      Welcome 
      <%=session.getAttribute(FormConstant.USER_NAME)%> 
     </div> 
     <div id="logoutBTN"> 
      <button id="logoutButton" onclick="javascript:loadFeedBack();">Logout</button> 
     </div> 
    </div> 
    <div id="feedbackForm"> 
     <form method="POST" action="logout" class="box tableBox"> 
      <div class="form_field"> 
       <div class="box_body"> 
        Thank you for using the Migration Toolkit. Please enter 
        any feedback you may have and tell us how you would like us to 
        improve the user experience. 
       </div> 
      </div> 
      <p style="clear: both"></p> 
      <div class="form_field" class="box_body"> 
       <div class="box_body"> 
        <label for="projectName">User Name :</label> <input type="text" 
         value="<%=session.getAttribute(FormConstant.USER_NAME)%>" 
         disabled /> <input type="hidden" name="userName" id="userName" 
         value="<%=session.getAttribute(FormConstant.USER_NAME)%>" /> 
       </div> 
      </div> 
      <p style="clear: both"></p> 
      <div class="form_field"> 
       <div class="box_body"> 
        <label for="projectName">User Feedback:</label> 
        <textarea id="userFeedBack" name="userFeedBack" 
         style="width: 450px; height:250px"></textarea> 
        <br> 
       </div> 
      </div> 
      <p style="clear: both"></p> 
      <div class="form_field"> 
       <div class="box_body"> 
        <label for="submitFeedback">&nbsp;</label> 
        <button id="submitFeedback" type="submit" style="float: right;">Submit Feedback</button> 
       </div> 
      </div> 
     </form> 
    </div> 
    <ul> 
     <toolkit:AccessValidateHandlerTag group="<%=roleAdmin%>"> 
      <li><a href="pages/generateRule.jsp">Review & Generate 
        Rulesets</a></li> 
     </toolkit:AccessValidateHandlerTag> 
     <toolkit:AccessValidateHandlerTag group="<%=roleUser%>"> 
      <li><a href="pages/codeParser.jsp">Parse a Codebase</a></li> 
      <li><a href="pages/reportViewer.jsp">Generate Consolidated Report</a></li> 
     </toolkit:AccessValidateHandlerTag> 
    </ul> 

</div> 
<jsp:include page="footer.jsp" /> 
    </body> 
    </html> 

는 톰캣 구성입니다 : 사용 CATALINA_BASE : 당신은 톰캣의 이전 버전에서 JspC를 사용하여 JSP를 사전 컴파일하는

"C:\Users\kinjal.doshi\Apache Software Foundation\Tomcat 7.0" 
    Using CATALINA_HOME: "C:\Users\kinjal.doshi\Apache Software Foundation\Tomcat 7.0" 
    Using CATALINA_TMPDIR: "C:\Users\kinjal.doshi\Apache Software Foundation\Tomcat 7.0\temp" 
    Using JRE_HOME:  "C:\Program Files\Java\jdk1.6.0_38" 
    Using CLASSPATH:  "C:\Users\kinjal.doshi\Apache Software Foundation\Tomcat 7.0\bin\bootstrap.jar;C:\Users\kinjal.doshi\Apache Software Foundation\Tomcat 7.0\bin\tomcat-juli.jar" 
    Using JAVA_OPTS:  " -Djava.util.logging.config.file="C:\Users\kinjal.doshi\Apache Software Foundation\Tomcat 7.0\conf\logging.properties" -XX:PermSize=256m -XX:MaxPermSize=256m -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager" 

enter image description here

+2

여기 코드를 welcome.jsp에 넣으시겠습니까 – Simmant

+0

클래스 경로에 jsp jar 파일을 보관하지 않으셨습니까? –

+0

실제로 배포하는 방법과 사용 방법은 무엇입니까? 건물? 전쟁으로 지어야한다고 생각하니? Maven 또는 유사한 도구를 사용합니까? – eis

답변

0

여기

코드입니다 최신 버전에서 실행하려고합니다. 일반적으로 Tomcat의 한 주요 버전의 JspC는 동일한 주요 버전의 다른 릴리스와 함께 작동하지만 보장되지는 않습니다. 올바른 컴파일을 위해서는 실행하려는 Tomcat과 동일한 버전의 JspC를 사용해야합니다.

+0

JspC를 사용한 적이 없습니까? JspC가 사용되고 있는지 확인할 수있는 방법을 이해할 수 있도록 도와주세요. 나는 커맨드 라인 프리 컴파일을하지 않기 때문에 이것에 대해 어떻게 할 지 확신하지 못한다. –

+0

또한 JSP 사전 컴파일을 피하고 배포시 이후에이를 처리하도록하려면 어떻게해야합니까? –

+0

JspC에 대해 조금 읽고 응용 프로그램의 pom.xml을 확인했습니다. JSP 프리 컴파일을위한 태스크가 추가되지 않았습니다. 나는 또한 web.xml을 체크했다. 프리 컴파일 기능은 거기에서도 사용되지 않는다. 그리고 내가 이해하지 못하는 것은 원래 프로젝트가 빌드하고 배포 할 때 잘 동작한다는 것이다. 반면에 프로젝트의 수정 된 버전을 빌드하고 배포 할 때 같은 버전의 tomcat 및 jdk에서는 작동하지 않습니다. 이것은 조금 이상하게 보입니다. 이 문제에 대해 더 자세히 알려 주시면 감사하겠습니다. –