Argument type mismatch

Olá a todos,

Estou com dificuldade em resolver uma coisa, se puderem ajudar, eu agradeço.

estou recebendo a seguinte exception:

20/09/2010 11:44:04 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: Cannot invoke com.caelum.struts.modelo.Contato.setDataNascimento - argument type mismatch
        at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
        at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
        at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
        at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
        at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
        at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
        at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
        at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:473)
        at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:823)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:194)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:861)
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1584)
        at java.lang.Thread.run(Thread.java:619)

Classe Contato

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.caelum.struts.modelo;

import java.io.Serializable;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Temporal;

/**
 *
 * @author HOUSE
 */
@Entity
public class Contato implements Serializable {

    @Id
    @GeneratedValue
    private int id;
    private String nome;
    private String endereco;
    private String email;
    @Temporal(javax.persistence.TemporalType.DATE)
    private Calendar dataNascimento;

    public Calendar getDataNascimento() {
        return dataNascimento;
    }

    public String getEmail() {
        return email;
    }

    public String getEndereco() {
        return endereco;
    }

    public String getNome() {
        return nome;
    }

    public int getId() {
        return id;
    }

    public void setDataNascimento(Calendar dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public void setId(int id) {
        this.id = id;
    }
}

novo.jsp:

<%-- 
    Document   : novo
    Created on : 10/09/2010, 22:50:41
    Author     : HOUSE
--%>

<%@page import="com.caelum.struts.modelo.Contato"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt"%>

<html:html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Sistema de Teste do Struts</title>
    </head>
    <html:errors/>
    <html:form action="/novoContato" focus="contato.endereco">
        Nome:
        <html:text property="contato.nome"/>
        <br/>
        Email:
        &lt;html:text property="contato.email"/&gt;
        <br/>
        Endereço:
        &lt;html:text property="contato.endereco"/&gt;
        <br/>
        Data de nascimento:
        &lt;html:text property="contato.dataNascimento"/&gt;
        <br/>
        &lt;html:submit&gt;Enviar dados&lt;/html:submit&gt;
        <br/>
    &lt;/html:form&gt;
&lt;/html:html&gt;

Não estou conseguindo fazer a conversão de um tipo String para Date, nem na JSP (utizando fmt, por exemplo), nem na Classe Contato como indica esse tópico: http://www.guj.com.br/posts/list/135775.java

Alguém poderia me dar uma força?

Desde já agradeço!

[]'s

Tive que alterar o tipo do meu banco de dados: de Date para String, alguém teria alguma solução mais elegante?

Obrigado!