Problema com utilização do Flex + Java + BlazeDS

Bom dia galera do GUJ!
Estou estudando Flex e sua integração com o Java, logo achei um Post recente no site/blog do Horochovec, segue o link:
http://www.horochovec.com.br/blog/2010/03/23/flash-builder-flex-sdk-4-java-blazeds-tutorial/

Seguindo o exemplo dele deu tudo certo, os dados são informados nos formulários em flex e salvos em um ArrayList na classe ContatoService.java daonde os mesmos são listados depois …certo, seguindo a maneira mais simples e básica de persistência, eu alterei essa classe para um método que abre um conexão e grava no banco através do PreparedStatement, a classe ficou assim:

public class ContatoService {

	public void addContato(Contato contato) {
		Connection con = new FabricaConexao().getConexao();
		String sql = "insert into pessoa(nome,email) values(?,?)";
		try {
			PreparedStatement ps = con.prepareStatement(sql);
			ps.setString(1, contato.getNome());
			ps.setString(2, contato.getEmail());
			ps.execute();
			ps.close();
		} catch (SQLException e) {
			System.out.println("Erro na Inserção de Contato");
			e.printStackTrace();
		}
	}

	public ArrayList getListContato() {
		Connection con = new FabricaConexao().getConexao();
		String sql = "select * from pessoa";
		ArrayList listContato = new ArrayList();
		try {
			PreparedStatement ps = con.prepareStatement(sql);
			ResultSet rs = ps.executeQuery();
			while (rs.next()) {
				Contato contato = new Contato();
				contato.setNome(rs.getString("nome"));
				contato.setEmail(rs.getString("email"));
				listContato.add(contato);
			}
			ps.close();
			rs.close();
		} catch (SQLException e) {
			System.out.println("Erro na Consulta de Contato");
			e.printStackTrace();
		}
		return listContato;
	}

}

Pensei que apenas alterando a persistência iria dar tudo certo, em teoria parecia que sim, mas a classe Flex => FlexDuck.mxml me envia um Alert “Erro” , e mesmo debugando eu não consegui entender o motivo…
Bom, caso perguntem: Assim que eu fiz as alterações na classe Java eu fiz um novo deploy na pasta webapps do TomCat, eu fiz e refiz a aplicação em Flex no FlashBuilder 4, testei os métodos da classe acima no Java, fazendo uma inserção normal…bom, eu quebrei a cabeça e não consegui resolver, por isso estou recorrendo a voces! =)
Eu só imagino que o objeto que meu Java está recebendo do Flex -> BlazeDS -> tenha alguma particularidade, e por isso não é bem interpretado quando eu tento joga-lo no PreparedStatement…mas são só duvidas…se voces souberem como eu resolvo o problema, agradeceria qualquer dica, opnião, etc…

Pra quem ficou com preguiça de olhar o link do Horochovec, aqui vão as classes, e xmls necessários:

FlexDuck.mxml

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx">
	
	<fx:Script>
		<![CDATA[
			import br.com.horochovec.model.Contato;
			
			import mx.collections.ArrayCollection;
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			[Bindable]
			public var contato : Contato 				= new Contato();
			
			[Bindable]
			public var listContato : ArrayCollection 	= new ArrayCollection();
			
			
			/**
			 * Metodo para falhas na comunicação
			 */				
			protected function onFault(event:FaultEvent) : void
			{
				Alert.show('Erro');
			}
			
			/**
			 * Funcao para retorno de cadastro do Contato
			 */
			protected function onResultAddContatoHandler(event:ResultEvent) : void 
			{
				Alert.show('Adicionado');
			}
			
			/**
			 * Funcao para retorno da lista de contatos
			 */
			protected function onResultGetListContatoHandler(event:ResultEvent) : void
			{
				this.listContato = event.result as ArrayCollection;
			}
			
			/**
			 * Evento de click do botão de cadastro
			 */
			protected function btnCadastroClickHandler(event:MouseEvent):void
			{
				this.remoteObject.addContato(this.contato);
			}
			
			/**
			 * Evento de click do botão de pesquisa
			 */
			protected function btnListarClickHandler(event:MouseEvent):void
			{
				this.remoteObject.getListContato();
			}
			
		]]>
	</fx:Script>
	
	<fx:Binding source="nome.text" 	destination="contato.nome" 	twoWay="true"/>
	<fx:Binding source="email.text" destination="contato.email" twoWay="true"/>
	
	<fx:Declarations>
		
		<s:RemoteObject id="remoteObject" 
						destination="ContatoService" 
						fault="onFault(event);">
			
			<s:method name="addContato" 
					  result="onResultAddContatoHandler(event);"
					  fault="onFault(event);" />
			<s:method name="getListContato" 
					  result="onResultGetListContatoHandler(event);"
					  fault="onFault(event);" />
			
		</s:RemoteObject>
		
	</fx:Declarations>
	
	
	<s:Panel width="400" height="137" title="Cadastro" left="10" top="10">
		<s:Button x="55" label="Cadastrar" bottom="10" id="btnCadastro" click="btnCadastroClickHandler(event)"/>
		<s:Label x="10" y="16" text="Nome:"/>
		<s:Label x="13" y="50" text="Email:"/>
		<s:TextInput x="56" y="10" width="332" id="nome"/>
		<s:TextInput x="56" y="44" width="332" id="email"/>
	</s:Panel>
	<s:Panel x="12" y="166" width="400" height="227" title="Pesquisa" left="10">
		<mx:DataGrid x="10" y="10" bottom="30" left="5" right="5" top="5" id="grid" dataProvider="{this.listContato}">
			<mx:columns>
				<mx:DataGridColumn headerText="Nome" dataField="nome"/>
				<mx:DataGridColumn headerText="Email" dataField="email"/>
			</mx:columns>
		</mx:DataGrid>
		<s:Button x="-1" y="163" label="Listar todos" left="5" bottom="5" id="btnListar" click="btnListarClickHandler(event)"/>
	</s:Panel>
	
</s:Application>

Contato.as

package br.com.horochovec.model
{
	[RemoteClass(alias="br.com.horochovec.model.Contato")]
	[Bindable]
	public class Contato
	{
		
		public var nome 	: String;
		
		public var email 	: String;
		
		public function Contato()
		{
		}
		
	}
}

web.xml //No projeto Java

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
	<display-name>FlexDuck</display-name>
	<welcome-file-list>
		<welcome-file>FlexDuck.html</welcome-file>
	</welcome-file-list>
 
 
    <!-- Http Flex Session attribute and binding listener support -->
    <listener>
        <listener-class>flex.messaging.HttpFlexSession</listener-class>
    </listener>
 
    <!-- MessageBroker Servlet -->
    <servlet>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class>
        <init-param>
            <param-name>services.configuration.file</param-name>
            <param-value>/WEB-INF/flex/services-config.xml</param-value>
       </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
 
    <servlet-mapping>
        <servlet-name>MessageBrokerServlet</servlet-name>
        <url-pattern>/messagebroker/*</url-pattern>
    </servlet-mapping>
 
</web-app>

remoting-config.xml //No projeto Java

<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service" 
    class="flex.messaging.services.RemotingService">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>

    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    
    <destination id="ContatoService">
    	<properties>
    		<source>br.com.horochovec.service.ContatoService</source>
    	</properties>
    </destination>
    

</service>

nenhuma ideia pessoal?

up!! (desespero)

Dentro da pasta WebContent/WEB-INF

existe a pasta flex e lib

que contem todos os xml de comunicação do blaze e os jar ?

outra coisa,

o compilador do flex esta apontando o servico do services-config.xml?

Dá mais detalhes, qual erro está dando? Debugando vc consegue ver qual a linha está dando erro, está chegando no método addContato?

[]s