Erro [BlazeDS] Cannot create class of type 'vo.Produto'. Type 'vo.Produto' not found

4 respostas
Stewie_

Ola estou tentando fazer a integração de flex + java utilizando banco de dados postgres (via JDBC) mais quando vou executar minha aplicação aparece o erro do titulo, ja pesquisei e nada encontrei que resolvesse meu problema.

a classe em java:
package vo;

public class Produto {
	
	private int cod_prod;
	private String nome_prod;
	private Double preco_prod;

// Getters and Setters
}
A classe em Flex:
package vo
{
	import mx.rpc.remoting.mxml.RemoteObject;
	[RemoteClass(alias="vo.Produto")]
	[Bindable]
	public class Produto
	{
	  public var cod_prod:int;
	  public var nome_prod:String;
	  public var preco_prod:Number;
	  
		public function Produto()
		{
		}

	}
}

4 Respostas

F

Será necessário tb registrar esta classe para o compilador levar junto. Para registrar vc precisa dar um new ou registerClass, explico melhor aqui: http://fabiophx.blogspot.com/2009/04/criacao-dinamica-de-objetos.html

[]s

Stewie_

Opa, blz valeu consegui aqui agora!! :D

Mais so tem um problema eu mandei listar na minha DataGrid no flex os produtos cadastrados no banco ele carrega a grid mais nao exibe nada!!! =//

Abaixo o codigo em Flex

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300" creationComplete="getData()">
	<mx:RemoteObject id="produtoS" destination="produtoService" channelSet="{utils.Utils.getChannelSet()}" fault="onFault(event)">
		<mx:method name="insertData" result="onResultInsertData(event)"/>
		<mx:method name="deleteData" result="onResultDeleteData(event)"/>
		<mx:method name="getData" result="onResultGetData(event)"/>
	</mx:RemoteObject>
	
	<mx:Script>
		<![CDATA[
			import utils.Utils;
			import vo.Produto;
			import mx.controls.Alert;
			import mx.collections.ArrayCollection;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			private var produto:Produto;
			[Bindable]
			private var lista:ArrayCollection;
			
			private function insertData():void{
				produto = new Produto();
				produto.nome_prod = txtNome.text;
				produto.preco_prod = Number(txtPreco.text);
				produtoS.insertData(produto);
			 }
			 
			 private function deleteData():void{
			 	if (dgProduto.selectedItem != null)
			 	       produtoS.deleteData(dgProduto.selectedItem as Produto);
			 }
			 
			 private function getData():void{
			 	produtoS.getData();
			 }
			 
			 private function onResultInsertData(event:ResultEvent):void{
			 	getData();
			 }
			 
			 private function onResultDeleteData(event:ResultEvent):void{
			 	getData();
			 }
			 
			 private function onResultGetData(event:ResultEvent):void{
			 	lista = event.result as ArrayCollection;
			 }
			 
			 private function onFault(event:FaultEvent):void{
			 	Alert.show("Deu erro","Error");
			 }
		]]>
	</mx:Script>        
	 
	<mx:DataGrid id="dgProduto" dataProvider="{lista}" x="10" y="10" width="380" height="142">
		<mx:columns>
			<mx:DataGridColumn headerText="Nome" dataField="nome"/>
			<mx:DataGridColumn headerText="Preço" dataField="preco"/>
		</mx:columns>
	</mx:DataGrid>          
	
	<mx:Label x="24" y="164" text="Nome:" width="42" textAlign="right"/>
	<mx:TextInput id="txtNome" x="78" y="160" width="312"/>
	<mx:Label x="28" y="194" text="Preço:"/>
	<mx:TextInput id="txtPreco" x="78" y="190" width="312"/>
	
	<mx:Button x="325" y="220" label="Gravar" click="insertData()"/>
	<mx:Button x="252" y="220" label="Excluir" click="deleteData()"/>
	                 
</mx:Canvas>
F

Vc colocou dataField nome e preco e no teu VO é nome_prod e preco_prod.

[]s

Stewie_

Nossa que juvenil que eu fui, ehehehheeheh!!!

Muito obrigado mesmo!!! vlw pela atençao ai!!

Abraços !

Criado 3 de agosto de 2010
Ultima resposta 4 de ago. de 2010
Respostas 4
Participantes 2