You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Yan, Charlene" <Ch...@thomsonlearning.com> on 2003/08/01 17:12:59 UTC

javax.servlet.ServletException: BeanUtils.populate

All,

I have been strugling with this for a while.  I looked at the archive and found similar questions but no answers there.

I have a form that has two fields - a bean and a String field.
My jsp displays the two fields.  I was able to get to the JSP by calling ssoXref.do?operation=showSsoXref.  But when I click on look up button on the page.  It throws the exception --javax.servlet.ServletException: BeanUtils.populate.  

My action and struts-config are attached below.  THANKS FOR ANY INSIGHT ON THIS...  Charlene
<action path="/ssoXref" parameter="operation" type="com.tl.tln.action.SsoXrefAction" name="ssoXrefForm" input="/ssoXrefEdit.jsp" scope="session">      
      <forward name="showSsoXref" path="/ssoXrefEdit.jsp"/>
    </action>
=========================================================
public class SsoXrefForm extends TlnActionForm
{
  private TlnSsoXref tlnSsoXref = new TlnSsoXref();

  private String searchSwbId = "";

  public String getSearchSwbId()
  {
    return searchSwbId;
  }

  public void setSearchSwbId(String newSearchSwbId)
  {
    searchSwbId = newSearchSwbId;
  }

  public TlnSsoXref getTlnSsoXref()
  {
    return tlnSsoXref;
  }

  public void setTlnSsoXref(TlnSsoXref newTlnSsoXref)
  {
    tlnSsoXref = newTlnSsoXref;
  }
}
========================================================
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ include file="/include/incPageStart.jsp" %>
<bean:define id="crumbName" type="java.lang.String" name="ssoXrefForm" property="crumbName" />
<bean:define id="crumbID" type="java.lang.String" name="ssoXrefForm" property="crumbID" />
<bean:define id="crumbAction" type="java.lang.String" name="ssoXrefForm" property="crumbAction" />
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
<title><%=crumbName%></title>
<link rel="stylesheet" type="text/css" href="includes/styles.css">

<script language="Javascript" src="includes/floating-toolbar.js" type="text/javascript"></script>
<script language="Javascript" type="text/javascript">
function handleSubmit(action) {
    document.forms[0].operation.value=action;
    alert("operation is " + document.forms[0].operation.value);
    return true;
  }
</script>
<base target="contents">
</head>

<body onload="setFocus()">
<html:form method="post" action="/ssoXref.do">
<input type="hidden" name="operation" value="" />

<div id="taskarea">
	<div class="breadcrumb">
          <bc:breadcrumb showCrumbs="true"
            crumbAction="<%=crumbAction%>"
            crumbName="<%=crumbName%>"
            crumbID="<%=crumbID%>" />
	</div>
  	<div class="taskbar" align="right">
	</div>
</div>
<div id="taskareaspacer">
</div>
<html:errors/>
<table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
	<td width="20"><img src="images/spacer.gif" height="1" width="20" alt="" border="0"></td>
	<td width="100%">
		<!-- Content Begin -->
	<table cellpadding="0" cellspacing="0" border="0">
	<tr>
		<td colspan="3"><img class="field-divider" alt="" src="" /></td>
	</tr>
    <tr class="columnheadings">
	  <td colspan=3><span class="resultstitle"><%=crumbName%></span></td>
    </tr>
	<tr>
		<td colspan="3"><img class="field-divider" src="" alt="" /></td>
	</tr>  
	<tr>
		<td class="field-name" width="20%">Swb ID:&nbsp;*</td>
		<td class="vdivider" width="1" ><img class="spacer" src="" alt="" /></td>
		<td class="field-text" width="80%">
		<html:text name="ssoXrefForm" property="searchSwbId" size="54" maxlength="200" />		  
    &nbsp;&nbsp;&nbsp; <div class="actions"><input type="submit" name="action" value="Look up" onClick="javascript:handleSubmit('lookup');"></div></td>
	</tr>
  <tr>
		<td colspan="3"><html:errors/></td>
	</tr>  
	<tr>
		<td class="field-name" width="20%">Swb ID:&nbsp;*</td>
		<td class="vdivider" width="1" ><img class="spacer" src="" alt="" /></td>
		<td class="field-text" width="80%">
    
			<html:text name="ssoXrefForm" property="tlnSsoXref.swbId" size="54" maxlength="200" />
		</td>
	</tr>
  <tr>
		<td colspan="3"><img class="field-divider" src="" alt="" /></td>
	</tr>
	<tr>
		<td class="field-name" width="20%" valign="top">Auth Class:&nbsp;*</td>
		<td class="vdivider" width="1" ><img class="spacer" src="" alt="" /></td>
		<td class="field-text" width="80%"><html:text name="ssoXrefForm" property="tlnSsoXref.authClass" size="54"/></td>
	</tr>
  <tr>
		<td colspan="3"><img class="field-divider" src="" alt="" /></td>
	</tr>
  <tr>
		<td class="field-name" width="20%" valign="top">Expiration Date:&nbsp;*</td>
		<td class="vdivider" width="1" ><img class="spacer" src="" alt="" /></td>
		<td class="field-text" width="80%"><html:text name="ssoXrefForm" property="tlnSsoXref.expirationDt" size="54"/></td>
	</tr>
	<tr>
		<td colspan="3"><img class="field-divider" src="" alt="" /></td>
	</tr>
  <tr>
		<td class="field-name" width="20%" valign="top">Maintained By:&nbsp;*</td>
		<td class="vdivider" width="1" ><img class="spacer" src="" alt="" /></td>
		<td class="field-text" width="80%"><html:text name="ssoXrefForm" property="tlnSsoXref.maintainedBy" size="54"/></td>
	</tr>
	<tr>
		<td class="actions" colspan="3">
			<input type="submit" name="action" value="Reset" onClick="javascript:handleSubmit('reset');"> 
			<input type="submit" name="action" value="Save" onClick="javascript:handleSubmit('store');"> 
      <input type="submit" name="action" value="Delete" onClick="javascript:handleSubmit('delete');">
		</td>
	</tr>
	</table>
		<!-- Content End -->
	</td>
	<td width="20"><img src="images/spacer.gif" height="1" width="20" alt="" border="0"></td>
</tr>
</table>

</html:form>
<%@ include file="/include/incPageEnd.jsp" %>
</body>

</html>
=====================================================

public class SsoXrefAction extends TlnAction
{
  private DateFormat formatter = DateFormat.getDateInstance(java.text.DateFormat.MEDIUM);
  
  public SsoXrefAction()
  {
  }

  public ActionForward showSsoXref(ActionMapping mapping,
				 ActionForm form,
				 HttpServletRequest request,
				 HttpServletResponse response) {
         System.out.println("Inside showSsoXref");
    SsoXrefForm ssoXrefForm = (SsoXrefForm) form;
    return mapping.findForward("showSsoXref");
      
   }

   public ActionForward lookup(ActionMapping mapping,
			ActionForm form,
			HttpServletRequest request,
			HttpServletResponse response)
	{    
    System.out.println("Am I here?");
		SsoXrefForm ssoXrefForm = (SsoXrefForm) form;
		try
		{
			TlnSsoXref tlnSsoXref = getTlnSsoXref(ssoXrefForm.getSearchSwbId(), "");
			if(tlnSsoXref != null) {
				ssoXrefForm.setTlnSsoXref(tlnSsoXref);
			} else {
				ssoXrefForm.setTlnSsoXref(new TlnSsoXref());
				setErrors(request, "error.ssoXref.norFound"); 
			}    

		} catch (Throwable t) {
			t.printStackTrace();
			return mapping.findForward("error");
		}
		return mapping.findForward("lookupSsoXref");
	}

  private TlnSsoXref getTlnSsoXref(String swbId, String customerId)
		throws Throwable
	{
		TlnSsoXref tlnSsoXref = null;;
		Criteria criteria = new Criteria();
		criteria.addEqualTo("swbId", swbId);
    criteria.addEqualTo("customerId", customerId);
		Query query = QueryFactory.newQuery(TlnSsoXref.class, criteria);
		try
		{
			PersistenceBroker broker = getBroker();
			tlnSsoXref = (TlnSsoXref)broker.getObjectByQuery(query);
		} catch (Throwable t) {
			throw t;
		}
		return tlnSsoXref;
	}

  private void setErrors(HttpServletRequest request, String err) {
    ActionErrors errors = new ActionErrors();
    errors.add(ActionErrors.GLOBAL_ERROR, new ActionError(err));
    saveErrors(request, errors);
  }
}
=========================================================================
javax.servlet.ServletException: BeanUtils.populate
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:1098)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:816)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:254)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1420)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:520)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at com.tl.tln.servlet.LoginFilter.doFilter(LoginFilter.java:49)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:484)

---------------------------------------------------------------------
To unsubscribe, e-mail: struts-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: struts-user-help@jakarta.apache.org