2013-05-15 65 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测试,以便一次完成编译和测试您的页面。