有人在Jenkins CI中调用了一个使用JspC预编译JSP的ant脚本吗?我正在尝试迁移我的项目以使用Jenkins,当我调用我的ant脚本时,我一直得到以下异常:
org.apache.jasper.JasperException:file:/ demo /workspace/Trunk/src/main/webapp/pages/test.jsp(line:9,column:0)useBean类属性的值org.demo .model.UserAccount无效。
ant脚本在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 :(得分:0)
你检查了你的lib路径并包含了吗?根据JSP文档,JSP:UseBean任务将首先尝试在路径中查找bean。如果它确实找到了那个类,那么我不知道它是否会注意你在这一点下面键入的内容。 bean的哪个声明优先?内联或它在路径中找到了什么?
http://profesores.elo.utfsm.cl/~agv/elo330/2s03/projects/Tomcat/doc/1.2/syntaxref1217.html
此外,从Tomcat5开始,这个ant任务(JspC)似乎已被弃用。 https://ant.apache.org/manual/Tasks/jspc.html
Ant文档建议使用Tomcat任务而不是ant任务。 这项任务存在许多局限性,部分源于Jasper的许多版本,其他来自任务中的实现“问题”(即没有人愿意从根本上改变大部分版本来解决jasper问题)。由于这一点以及JSP页面不必跨实现 - 或实现版本 - 可移植的事实 - 此任务更好地用于在部署之前验证JSP页面,而不是预编译它们。为此,只需在部署后部署并运行您的httpunit junit测试,即可一次性编译和测试您的页面。