2013-10-07 3 views
1

Я работаю над веб-приложением Java, над которым работал кто-то еще раньше, и этот человек просто предоставил мне исходный код приложения. Проблема заключается в том, если я пытаюсь внести некоторые изменения в этом приложение и развернуть его на коте (7.0.35) JSPs не делают, и я получаю следующее сообщение об ошибке:JSP Compilation Issue

JSP Compilation Error

Кроме того, я заметил, что файл класса для этого приветствия.jsp не создается.

Единственный способ заставить приложение работать, переустанавливая новую версию tomcat, а затем создавая, развертывая и получая доступ к исходному исходному коду. Когда я создаю и развертываю этот код и получаю JSP-файлы, они компилируются правильно, а также файлы .class и .java создаются в рабочем каталоге tomcat.

После этого я скопирую все мои изменения в исходный исходный код и повторно разворачиваю модифицированное приложение, и оно отлично работает, потому что классы и java-файлы, соответствующие страницам JSP, были созданы после развертывания и доступа к исходному приложению.

Кроме того, если я попытаюсь изменить 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> 

Вот Tomcat Config: Использование CATALINA_BASE:

"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 в вашем классе пути, пожалуйста, проверьте, если баночка доступны в вашем пути к классам –

+0

, как вы на самом деле развертывания и как вы здание? считаете ли вы его строительство войной? вы используете maven или аналогичные инструменты? – eis

ответ

0

Вы прекомпиляции ваши JSP-страницы с помощью JspC из старой версии Tomcat и пытается запустить их в более новой версии. Обычно JspC из одной основной версии Tomcat будет работать с любой другой версией из той же основной версии, но это не гарантируется. Чтобы быть уверенным в правильной компиляции, вам нужно использовать JspC из той же версии Tomcat, которую вы собираетесь запускать.

+0

Я никогда не использовал JspC. помогите мне понять, как я могу определить, что JspC используется. Я не делаю предварительную компиляцию командной строки, поэтому не знаю, как это сделать. –

+0

Также, как я могу избежать предварительной компиляции JSP и позволить этому позаботиться о времени развертывания и позже? –

+0

Я немного прочитал о JspC и проверил pom.xml моего приложения. Для прекомпиляции JSP нет задачи. Я также проверил web.xml, функция предварительной компиляции там тоже не используется, и я не понимаю, что исходный проект отлично работает при его создании и развертывании, тогда как при создании и развертывании измененной версии проекта, не работает в той же версии tomcat и jdk. Это кажется немного странным. Был бы рад, если бы вы могли пролить свет на этот вопрос. –