Programa não roda

0 respostas
K

Gente, estou desenvolvendo um sistema baseado em uma apostila de java com flex, e sou iniciante com flex, por isso preciso da ajuda de vcs!
Nesse sistema eu possuo 2 DataGrids, porem quando eu digito o endereço definido no projeto, no caso "http://localhost:8080/Contatos-Java/debug/Main2.html", ao inves de rodar o programa normalmente, ele me retorna o seguinte erro: "faultCode:Server.Processing faultString:'No destination with id 'contato' is registered with any service.' faultDetail:'null'"
O que pode vir a ser isso?
Se puderem ajudar, muito obrigado!

OBS: Possuo a classe Main2.mxml e depois a Contato.mxml
Aí estão os codigos:

Main2.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" 
			   minWidth="955" minHeight="600">
	
	<fx:Script>
		<![CDATA[
			import agenda.*;
			import flash.net.registerClassAlias;
			import mx.managers.PopUpManager;
		]]>
	</fx:Script>
	
	<s:creationComplete>
		<![CDATA[
			registerClassAlias("agenda.ContatoVO",agenda.ContatoVO);
			registerClassAlias("agenda.EnderecoVO",agenda.EnderecoVO);
			registerClassAlias("agenda.EstadoVO",agenda.EstadoVO);
			contato.getAll();
			this.systemManager.addEventListener("RefreshContatos",RefreshContatos);
		]]>
	</s:creationComplete>
	
	<fx:Declarations>
		<mx:RemoteObject id="contato" destination="contato" fault="OnFault(event)" showBusyCursor="true" >
			<mx:method name="getAll" result="Contato_OnGetAll(event)"/>
			<mx:method name="del" result="Contato_OnDelete(event)"/>
		</mx:RemoteObject>
		
		<mx:RemoteObject id="endereco" destination="endereco" fault="OnFault(event)" >
			<mx:method name="getByContato" result="Endereco_OnGetByContato(event)"/>
		</mx:RemoteObject> 
	</fx:Declarations>
	
	<fx:Script>
		<![CDATA[
			import mx.rpc.events.ResultEvent;
			import mx.controls.Alert;
			import mx.rpc.events.FaultEvent;
			
			protected function OnFault(e:FaultEvent):void {
				Alert.show(e.fault.message.toString());
			}
			
			protected function Contato_OnGetAll(e:ResultEvent):void {
				dgContatos.dataProvider = e.result;
			}
			
			protected function Contato_OnDelete(e:ResultEvent):void {
				contato.getAll();
			}
			
			protected function Endereco_OnGetByContato(e:ResultEvent):void {
				dgEnderecos.dataProvider = e.result;
			}			
			
			protected function RefreshContatos(e:Event):void {
				contato.getAll();
			}
			
			protected function GetNumComp(data:Object, col:DataGridColumn):String {
				return (data as EnderecoVO).Numero + "/" + (data as EnderecoVO).Complemento; 
			}	
		]]>
	</fx:Script>
	
	<mx:DataGrid id="dgContatos" y="34" left="10" right="10" height="230">
		<mx:columns>
			<mx:DataGridColumn headerText="Nome" dataField="Nome"/>
			<mx:DataGridColumn headerText="Email" dataField="Email"/>
			<mx:DataGridColumn headerText="Telefone" dataField="Telefone"/>
		</mx:columns>
		
		<mx:change>
			<![CDATA[
			endereco.getByContato((dgContatos.selectedItem as ContatoVO).id);
			]]>
		</mx:change>
	</mx:DataGrid>
	
	<s:Button x="12" y="5" label="Novo">
		<s:click>
			<![CDATA[
				var telaContao: Contato = new  Contato();
				PopUpManager.addPopUp(telaContao,this,true);
				PopUpManager.centerPopUp(telaContao);
			]]>
		</s:click>
	</s:Button>
	
	<s:Button x="90" y="5" label="Editar" enabled="{dgContatos.selectedItem!=null}" >
		<s:click>
			<![CDATA[
				var telaContao: Contato = new  Contato();
				telaContao.setContato((dgContatos.selectedItem as ContatoVO));
				PopUpManager.addPopUp(telaContao,this,true);
				PopUpManager.centerPopUp(telaContao);
			]]>
		</s:click>
	</s:Button>
	
	<s:Button x="168" y="5" label="Excluir" enabled="{dgContatos.selectedItem!=null}" >
		<s:click>
			<![CDATA[
				contato.del((dgContatos.selectedItem as ContatoVO).id);
			]]>
		</s:click>
	</s:Button>
	
	<s:Label x="10" y="272" text="Endereços:"/>
	
	<mx:DataGrid id="dgEnderecos" y="287" right="11" left="9" height="247">
		<mx:columns>
			<mx:DataGridColumn headerText="Logradouro" dataField="Logradouro" width="350"/>
			<mx:DataGridColumn headerText="Numero/Comp" dataField="" labelFunction="GetNumComp"/>
			<mx:DataGridColumn headerText="CEP" dataField="Cep"/>
		</mx:columns>
	</mx:DataGrid>
</s:Application>
Contato.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx"
			   width="550" height="500" title="Contato"
			   creationComplete="OnCreationComplete(event)" >
	
	<s:close>
		<![CDATA[
			dispatchEvent(new Event("RefreshContatos",true));
			PopUpManager.removePopUp(this);
		]]>
	</s:close>
	
	<fx:Script>
		<![CDATA[
			import agenda.ContatoVO;
			import agenda.EnderecoVO;
			import agenda.EstadoVO;
			import mx.collections.ArrayCollection;
			import mx.collections.ArrayList;
			import mx.controls.Alert;
			import mx.events.FlexEvent;
			import mx.managers.PopUpManager;
			import mx.rpc.events.FaultEvent;
			import mx.rpc.events.ResultEvent;
			
			[Bindable]
			protected var contatoVO:ContatoVO=null;
			[Bindable]
			protected var enderecosVOs:ArrayCollection;
			[Bindable]
			protected var enderecoVO:EnderecoVO=null;
			
			public function setContato(c:ContatoVO):void {
				contatoVO = c;
			}
			
			protected function OnFault(e:FaultEvent):void {
				Alert.show(e.fault.message.toString());
			}
			
			protected function Contato_OnInsert(e:ResultEvent):void {
				dispatchEvent(new Event("RefreshContatos",true));
				//Assim que inserir, deve habilitar o inclusão 
				// de enderecos. Para isso, basta preencher o id
				//  do contatoVO.
				contatoVO.id = parseInt(e.result.toString());
			}
			
			protected function Contato_OnUpdate(e:ResultEvent):void {
				dispatchEvent(new Event("RefreshContatos",true));
			}
			
			protected function Endereco_OnGetByContato(e:ResultEvent):void {
				enderecosVOs = e.result as ArrayCollection;
			}
			
			protected function Endereco_OnInsert(e:ResultEvent):void {
				endereco.getByContato(contatoVO.id);	
			}
			
			protected function Endereco_OnUpdate(e:ResultEvent):void {
				endereco.getByContato(contatoVO.id);	
			}
			
			protected function Endereco_OnDel(e:ResultEvent):void {
				endereco.getByContato(contatoVO.id);	
			}
			
			protected function OnCreationComplete(event:FlexEvent):void {
				estado.getAll();				
				if (contatoVO == null)
					contatoVO = new ContatoVO();
				if (contatoVO.id > 0) {
					endereco.getByContato(contatoVO.id);
				}	
			}
			
			protected function Estado_OnGetAll(e:ResultEvent):void {
				comboEstados.dataProvider = e.result as ArrayCollection;
			}
		]]>
	</fx:Script>
	
	<s:layout>
		<s:BasicLayout/>
	</s:layout>
	
	<fx:Declarations>
		<mx:RemoteObject id="contato" destination="contato" fault="OnFault(event)" >
			<mx:method name="insert" result="Contato_OnInsert(event)"/>
			<mx:method name="update" result="Contato_OnUpdate(event)"/>
		</mx:RemoteObject>
		
		<mx:RemoteObject id="endereco" destination="endereco" fault="OnFault(event)" >
			<mx:method name="getByContato" result="Endereco_OnGetByContato(event)"/>
			<mx:method name="insert" result="Endereco_OnInsert(event)"/>
			<mx:method name="update" result="Endereco_OnUpdate(event)"/>
			<mx:method name="del" result="Endereco_OnDel(event)"/>
		</mx:RemoteObject> 
		
		<mx:RemoteObject id="estado" destination="estado" fault="OnFault(event)" >
			<mx:method name="getAll" result="Estado_OnGetAll(event)"/>
		</mx:RemoteObject> 
	</fx:Declarations>
	
	<s:Label x="10" y="10" text="Nome:"/>
	<s:TextInput x="10" y="26" width="197" text="@{contatoVO.Nome}"/>
	<s:Label x="215" y="10" text="Email:" />
	<s:TextInput x="215" y="26" width="191" text="@{contatoVO.Email}"/>
	<s:Label x="414" y="9" text="Telefone:"/>
	<s:TextInput x="414" y="25" text="@{contatoVO.Telefone}"/>
	<mx:DataGrid x="10" y="56" width="528" id="dgEnderecos" dataProvider="{enderecosVOs}" enabled="{contatoVO.id>0}" >
		<mx:columns>
			<mx:DataGridColumn headerText="Logradouro" dataField="Logradouro"/>
			<mx:DataGridColumn headerText="Numero" dataField="Numero"/>
			<mx:DataGridColumn headerText="Complemento" dataField="Complemento"/>
			<mx:DataGridColumn dataField="Cidade" headerText="Cidade"/>
			<mx:DataGridColumn dataField="Estado" headerText="Estado"/>
			<mx:DataGridColumn dataField="Cep" headerText="Cep"/>
		</mx:columns>
	</mx:DataGrid>
	
	<s:Button x="10" y="206" label="Novo Endereço" enabled="{contatoVO.id>0}" >
		<s:click>
			<![CDATA[
				enderecoVO = new EnderecoVO();
				enderecoVO.idcontato = contatoVO.id;
			]]>
		</s:click>
	</s:Button>
	
	<s:Button x="123" y="206" label="Editar Endereço" enabled="{dgEnderecos.selectedItem!=null}" >
		<s:click>
			<![CDATA[
				enderecoVO = dgEnderecos.selectedItem as EnderecoVO;
			]]>
		</s:click>
	</s:Button>
	<s:Button x="426" y="206" label="Excluir Endereço" enabled="{dgEnderecos.selectedItem!=null}" >
		<s:click>
			<![CDATA[
				endereco.del( (dgEnderecos.selectedItem as EnderecoVO).id );
			]]>
		</s:click>
	</s:Button>
	
	<s:Panel x="10" y="235" width="528" height="167" dropShadowVisible="false" chromeColor="#E6E9F3" symbolColor="#B6CBEA" title="Endereço:" enabled="{contatoVO.id>0}" >
		<s:Label x="10" y="10" text="Logradouro:"/>
		<s:TextInput x="10" y="26" width="320" text="@{enderecoVO.Logradouro}" enabled="{enderecoVO!=null}" />
		<s:Label x="338" y="10" text="Número:"/>
		<s:TextInput x="338" y="26" width="84" text="@{enderecoVO.Numero}" enabled="{enderecoVO!=null}" />
		<s:Label x="436" y="10" text="Comp:"/>
		<s:TextInput x="436" y="26" width="80" text="@{enderecoVO.Complemento}" enabled="{enderecoVO!=null}" />
		<s:Label x="10" y="56" text="Cep:"/>
		<s:TextInput x="10" y="72" width="84" text="@{enderecoVO.Cep}" enabled="{enderecoVO!=null}" />
		<s:Label x="106" y="55" text="Cidade:"/>
		<s:TextInput x="106" y="71" width="256" text="@{enderecoVO.Cidade}" enabled="{enderecoVO!=null}" />
		<s:Label x="374" y="56" text="Estado:"/>
		<s:ComboBox id="comboEstados" x="370" y="71" labelField="Abr" />
		<s:Button x="405" y="102" label="Salvar Endereço">
			<s:click>
				<![CDATA[
					enderecoVO.idestado = (comboEstados.selectedItem as EstadoVO).id;
					if (enderecoVO.id>0)
					endereco.update(enderecoVO);
					else
					endereco.insert(enderecoVO);
				]]>
			</s:click>	
		</s:Button>
	</s:Panel>
	
	<s:controlBarContent>
		<s:Button label="Salvar">
			<s:click>
				<![CDATA[
					if (contatoVO.id > 0)
					contato.update(contatoVO);
					else
					contato.insert(contatoVO);
				]]>
			</s:click>
		</s:Button>
		<s:Button label="Fechar">
			<s:click>
				<![CDATA[
					dispatchEvent(new Event("RefreshContatos",true));
					PopUpManager.removePopUp(this);
				]]>
			</s:click>
		</s:Button>
	</s:controlBarContent>
</s:TitleWindow>

Aí a imagem de quando aparece o erro:

Criado 8 de maio de 2012
Respostas 0
Participantes 1