2013-05-15 55 views
0

有沒有人在Jenkins CI中調用了使用JspC預編譯JSP的ant腳本?我試圖遷移我的項目使用詹金斯,當我打電話給我的螞蟻腳本,我不斷收到以下異常:在Jenkins中預編譯JSP

org.apache.jasper.JasperException:file:/ demo/workspace/Trunk/src/main/webapp/pages/test.jsp(line:9,column:0)useBean類屬性org.demo.model.UserAccount的值無效。

螞蟻腳本在Jenkins之外運行良好,但不會在內部沒有錯誤的情況下運行。思考?

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> 
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %> 
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %> 
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 

<jsp:useBean id="User" class="com.demo.model.UserAccount"/> 
<c:url var="saveUserUrl" value="/account/save.html" /> 

<form:form modelAttribute="account" method="POST" action="${saveUserUrl}"> 
<form:errors path="*" cssClass="statusError" element="p" htmlEscape="false" /> 
<form:hidden path="id"/> 

    <div style="width:60%"> 
     <fieldset>   
      <p class="field"> 
       <label for="">First Name</label> 
       <form:input path="firstName" title="First name"/> 
      </p>    
      <p class="field"> 
       <label for="">Last Name</label> 
       <form:input path="lastName" title="Last name"> 
      </p>   
      <p class="field"> 
       <label for="">E-mail Address</label> 
       ${account.email} 
      </p> 
     </fieldset> 
     <p class="field"> 
      <input type="submit" class="button" value="Save" name="submit"/> 
     </p> 
    </div> 

</form:form> 
+0

向我們展示您的jsp – DDK

+0

這是我的jsp代碼。 Ant腳本在Jenkins之外工作良好,但不會在內部運行。 –

回答

0

你有沒有檢查過你的lib路徑,包括?根據JSP文檔,JSP:UseBean任務將首先嚐試在您的路徑中查找bean。如果它確實找到了這個類,那麼我不知道它是否會注意到你在那個點下鍵入的內容。哪個bean的聲明優先?內聯還是它在路徑中找到的內容?

http://profesores.elo.utfsm.cl/~agv/elo330/2s03/projects/Tomcat/doc/1.2/syntaxref1217.html

此外,它看起來像這樣Ant任務(JSPC)被棄用Tomcat5的的。 https://ant.apache.org/manual/Tasks/jspc.html

Ant文檔建議使用Tomcat任務而不是ant任務。 這個任務有很多限制,部分源於許多Jasper版本,其他許多版本都來自任務中的執行「問題」(即沒有人願意徹底改變它的大部分以在碧玉周圍工作)。由於這一點以及JSP頁面無需跨實現進行移植的事實 - 或實現版本 - 此任務更適合在部署之前驗證JSP頁面,而不是預編譯它們。爲此,只需在部署後部署並運行您的httpunit junit測試,以便一次完成編譯和測試您的頁面。