Caydel
asked on
JSP Coercion Error
Hello. I am developing an app for my employer, and I am encountering an error due to coercion somewhere in one of my pages. I am having trouble locating it. I hope someone can provide me with a bit of assistance.
exception
javax.servlet.ServletExcep tion: Attempt to coerce a boolean value "false" to type "java.lang.Long"
org.apache.jasper.runtime. PageContex tImpl.doHa ndlePageEx ception(Pa geContextI mpl.java:8 25)
org.apache.jasper.runtime. PageContex tImpl.hand lePageExce ption(Page ContextImp l.java:758 )
org.apache.jsp.jsp.process _jsp._jspS ervice(pro cess_jsp.j ava:2207)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:3 24)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
root cause
javax.servlet.jsp.el.ELExc eption: Attempt to coerce a boolean value "false" to type "java.lang.Long"
org.apache.commons.el.Logg er.logErro r(Logger.j ava:481)
org.apache.commons.el.Logg er.logErro r(Logger.j ava:498)
org.apache.commons.el.Logg er.logErro r(Logger.j ava:566)
org.apache.commons.el.Coer cions.coer ceToPrimit iveNumber( Coercions. java:422)
org.apache.commons.el.Coer cions.appl yArithmeti cOperator( Coercions. java:872)
org.apache.commons.el.Arit hmeticOper ator.apply (Arithmeti cOperator. java:83)
org.apache.commons.el.Bina ryOperator Expression .evaluate( BinaryOper atorExpres sion.java: 170)
org.apache.commons.el.Expr essionEval uatorImpl. evaluate(E xpressionE valuatorIm pl.java:26 3)
org.apache.commons.el.Expr essionEval uatorImpl. evaluate(E xpressionE valuatorIm pl.java:19 0)
org.apache.jasper.runtime. PageContex tImpl.prop rietaryEva luate(Page ContextImp l.java:899 )
org.apache.jsp.jsp.process _jsp._jspx _meth_c_if _97(proces s_jsp.java :20735)
org.apache.jsp.jsp.process _jsp._jspS ervice(pro cess_jsp.j ava:2100)
org.apache.jasper.runtime. HttpJspBas e.service( HttpJspBas e.java:94)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
org.apache.jasper.servlet. JspServlet Wrapper.se rvice(JspS ervletWrap per.java:3 24)
org.apache.jasper.servlet. JspServlet .serviceJs pFile(JspS ervlet.jav a:292)
org.apache.jasper.servlet. JspServlet .service(J spServlet. java:236)
javax.servlet.http.HttpSer vlet.servi ce(HttpSer vlet.java: 802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.
The code which causes it is:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%!String firstname;
String lastname;
%>
<%-- Check for valid session --%>
<c:if test="${validUser == null}">
<jsp:forward page="../login.jsp">
<jsp:param name="error" value="4" />
</jsp:forward>
</c:if>
<%-- ****************Address Stuff *********** --%>
<%-- Check if address/location exists --%>
<sql:query var="add_exists">
SELECT
*
FROM
address_table
WHERE
(address_1 = ?)
<sql:param value="${param.add_1}" />
</sql:query>
<%-- if a record is returned, get the address id --%>
<c:if test="${add_exists.rowCoun t == 1}">
<c:forEach items="${add_exists.rows}" var="add_row">
<c:set var="add_id" value="${add_row.add_id}" />
</c:forEach>
</c:if>
<%-- If 1 record is not returned from query, add the address--%>
<c:if test="${add_exists.rowCoun t != 1}">
<sql:update var="insert_address">INSER T INTO address_table VALUES ( 0, ?, ?, ?, ?, ?, ?, ?, ? )
<sql:param value="${param.Company}" />
<sql:param value="${param.Store_num}" />
<sql:param value="${param.add_1}" />
<sql:param value="${param.add_2}" />
<sql:param value="${param.city}" />
<sql:param value="${param.province}" />
<sql:param value="${param.country}" />
<sql:param value="${param.phone}" />
</sql:update>
<%--now get the address id.... --%>
<sql:query var="add_exists">
SELECT
add_id
FROM
address_table
WHERE
(address_1 = ?)
<sql:param value="${param.add_1}" />
</sql:query>
<c:forEach items="${add_exists.rows}" var="row">
<c:set var="add_id" value="${row.add_id}" />
</c:forEach>
</c:if>
<%-- ************ check if crew member1 exists, and get id# ****************--%>
<c:if test="${not empty param.Crew1_name}">
<c:out value="testing to see if c1 exists " />
<sql:query var="crew1_exists">
SELECT
*
FROM
crew_map
WHERE
(last_name = ?) AND (first_name = ?)
<sql:param
value='<%= com.acps.takedown.NamePars erBean.par seLastname (request
.getParameter("Crew1_name" )) %>' />
<sql:param
value='<%= com.acps.takedown.NamePars erBean.par seFirstnam e(request
.getParameter("Crew1_name" )) %>' />
</sql:query>
<c:if test="${crew1_exists.rowCo unt == 1}">
<c:forEach items="${crew1_exists.rows }" var="crew1_row">
<c:set var="c1id" value="${crew1_row.person_ id}" />
</c:forEach>
</c:if>
<%-- if not, add him --%>
<c:if test="${crew1_exists.rowCo unt != 1}">
<c:out value="c1 does not exist, adding him" />
<sql:update var="add_crew1">
INSERT INTO crew_map VALUES
(0, ?, ? )
<sql:param
value='<%= com.acps.takedown.NamePars erBean.par seLastname (request
.getParameter("Crew1_name" )) %>' />
<sql:param
value='<%= com.acps.takedown.NamePars erBean.par seFirstnam e(request
.getParameter("Crew1_name" )) %>' />
</sql:update>
<%-- and then get the id --%>
<sql:query var="crew1_get_id">
SELECT
*
FROM
crew_map
WHERE
(last_name = ?) AND (first_name = ?)
<sql:param
value='<%= com.acps.takedown.NamePars erBean.par seLastname (request
.getParameter("Crew1_name" )) %>' />
<sql:param
value='<%= com.acps.takedown.NamePars erBean.par seFirstnam e(request
.getParameter("Crew1_name" )) %>' />
</sql:query>
<c:forEach items="${crew1_get_id.rows }" var="crew1_row">
<c:set var="c1id" value="${crew1_row.person_ id}" />
</c:forEach>
</c:if>
</c:if>
<sql:update var="insert_job">INSERT INTO job_table VALUES ( 0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
<sql:param value="${param.Date}" />
<sql:param value="${add_id}" />
<sql:param value="${c1id}" />
<sql:param value="${c2id}" />
<sql:param value="${c3id}" />
<sql:param value="${c4id}" />
<sql:param value="${c5id}" />
<sql:param value="${c6id}" />
<sql:param value="${param.travel_time }" />
<sql:param value="${param.start_time} " />
<sql:param value="${param.end_time}" />
<sql:param value="${param.delay_time} " />
<sql:param value="${param.Comments}" />
</sql:update>
<sql:query var="job_id_check">
SELECT max(job_id) AS max_job_id FROM job_table
</sql:query>
<c:forEach items="${job_id_check.rows }" var="job_row">
<c:set var="job_id" value="${job_row.max_job_i d}" />
</c:forEach>
Thank you for any and all help/suggestions/ideas. It is really appreciated!
exception
javax.servlet.ServletExcep
org.apache.jasper.runtime.
org.apache.jasper.runtime.
org.apache.jsp.jsp.process
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
root cause
javax.servlet.jsp.el.ELExc
org.apache.commons.el.Logg
org.apache.commons.el.Logg
org.apache.commons.el.Logg
org.apache.commons.el.Coer
org.apache.commons.el.Coer
org.apache.commons.el.Arit
org.apache.commons.el.Bina
org.apache.commons.el.Expr
org.apache.commons.el.Expr
org.apache.jasper.runtime.
org.apache.jsp.jsp.process
org.apache.jsp.jsp.process
org.apache.jasper.runtime.
javax.servlet.http.HttpSer
org.apache.jasper.servlet.
org.apache.jasper.servlet.
org.apache.jasper.servlet.
javax.servlet.http.HttpSer
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.27 logs.
The code which causes it is:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql"%>
<%!String firstname;
String lastname;
%>
<%-- Check for valid session --%>
<c:if test="${validUser == null}">
<jsp:forward page="../login.jsp">
<jsp:param name="error" value="4" />
</jsp:forward>
</c:if>
<%-- ****************Address Stuff *********** --%>
<%-- Check if address/location exists --%>
<sql:query var="add_exists">
SELECT
*
FROM
address_table
WHERE
(address_1 = ?)
<sql:param value="${param.add_1}" />
</sql:query>
<%-- if a record is returned, get the address id --%>
<c:if test="${add_exists.rowCoun
<c:forEach items="${add_exists.rows}"
<c:set var="add_id" value="${add_row.add_id}" />
</c:forEach>
</c:if>
<%-- If 1 record is not returned from query, add the address--%>
<c:if test="${add_exists.rowCoun
<sql:update var="insert_address">INSER
<sql:param value="${param.Company}" />
<sql:param value="${param.Store_num}"
<sql:param value="${param.add_1}" />
<sql:param value="${param.add_2}" />
<sql:param value="${param.city}" />
<sql:param value="${param.province}" />
<sql:param value="${param.country}" />
<sql:param value="${param.phone}" />
</sql:update>
<%--now get the address id.... --%>
<sql:query var="add_exists">
SELECT
add_id
FROM
address_table
WHERE
(address_1 = ?)
<sql:param value="${param.add_1}" />
</sql:query>
<c:forEach items="${add_exists.rows}"
<c:set var="add_id" value="${row.add_id}" />
</c:forEach>
</c:if>
<%-- ************ check if crew member1 exists, and get id# ****************--%>
<c:if test="${not empty param.Crew1_name}">
<c:out value="testing to see if c1 exists " />
<sql:query var="crew1_exists">
SELECT
*
FROM
crew_map
WHERE
(last_name = ?) AND (first_name = ?)
<sql:param
value='<%= com.acps.takedown.NamePars
.getParameter("Crew1_name"
<sql:param
value='<%= com.acps.takedown.NamePars
.getParameter("Crew1_name"
</sql:query>
<c:if test="${crew1_exists.rowCo
<c:forEach items="${crew1_exists.rows
<c:set var="c1id" value="${crew1_row.person_
</c:forEach>
</c:if>
<%-- if not, add him --%>
<c:if test="${crew1_exists.rowCo
<c:out value="c1 does not exist, adding him" />
<sql:update var="add_crew1">
INSERT INTO crew_map VALUES
(0, ?, ? )
<sql:param
value='<%= com.acps.takedown.NamePars
.getParameter("Crew1_name"
<sql:param
value='<%= com.acps.takedown.NamePars
.getParameter("Crew1_name"
</sql:update>
<%-- and then get the id --%>
<sql:query var="crew1_get_id">
SELECT
*
FROM
crew_map
WHERE
(last_name = ?) AND (first_name = ?)
<sql:param
value='<%= com.acps.takedown.NamePars
.getParameter("Crew1_name"
<sql:param
value='<%= com.acps.takedown.NamePars
.getParameter("Crew1_name"
</sql:query>
<c:forEach items="${crew1_get_id.rows
<c:set var="c1id" value="${crew1_row.person_
</c:forEach>
</c:if>
</c:if>
<sql:update var="insert_job">INSERT INTO job_table VALUES ( 0, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )
<sql:param value="${param.Date}" />
<sql:param value="${add_id}" />
<sql:param value="${c1id}" />
<sql:param value="${c2id}" />
<sql:param value="${c3id}" />
<sql:param value="${c4id}" />
<sql:param value="${c5id}" />
<sql:param value="${c6id}" />
<sql:param value="${param.travel_time
<sql:param value="${param.start_time}
<sql:param value="${param.end_time}" />
<sql:param value="${param.delay_time}
<sql:param value="${param.Comments}" />
</sql:update>
<sql:query var="job_id_check">
SELECT max(job_id) AS max_job_id FROM job_table
</sql:query>
<c:forEach items="${job_id_check.rows
<c:set var="job_id" value="${job_row.max_job_i
</c:forEach>
Thank you for any and all help/suggestions/ideas. It is really appreciated!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.