Erro #2048 e #2032

:slight_smile: Bom dia,

Tenho uma aplicação flex que carrega um arquivo xml e mostra os dados na tela do navegador. Resumindo, tenho um html rodando em servidor tomcat, este chama a página flex que carrega o arquivo xml. O nome do arquivo é passado como parâmetro na URL.

ex.:[color=blue] http://localhost:8084/ti2010/SPERViewerWeb/SPEDViewerWeb.html?filename=SPERViewerWeb\AvalArq84693183000168-02-05-2010-14-43-50.xml[/color]

após eu chamar esta página através de link, é apresentado o erro #2032 rodando o tomcat pelo netbeans. Em outro servidor o oficial, é chamado em php e aparece o erro #2048, mas a situação é a mesma.

Alguém saberia o que acontece e como corrijo isto?

Obrigado.

Juceli,
Poderia mandar as mensagens destes erros e / ou o código.
Adiantando, por questões de segurança o Flash Player por default não consegue acessar arquivos q estejam em outro host. Se o teu xml estiver em outro endereço diferente de onde está o swf, pode dar erro de Security.

[]s

bom dia Fabiophx,

segue código principal.

Observação, quando rodo no flexbuilder, funciona perfeitamente. Porém quando rodo no firefox com servidor tomcat, ocorre o erro.

[code]<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute” xmlns:ns1="*" creationComplete=“callLater(complete)”>

<mx:Script>
	<![CDATA[
		import mx.controls.Alert;
		import mx.managers.BrowserManager;
		import mx.managers.IBrowserManager;
		import mx.messaging.SubscriptionInfo;
		
		private var loader:URLStream;	
		private var browserManager:IBrowserManager;
		
		private function complete():void {
			var filename:String;	
			
			browserManager = BrowserManager.getInstance();
			browserManager.init();
			filename = browserManager.url;	
			
			var tamanho:int 		= filename.length;
			var indice:int 			= filename.indexOf("=",0) + 1;
			var parametro:String 	= filename.substr(indice,int.MAX_VALUE).replace("#","");
			
			if (parametro == null || parametro == "" || parametro == "null" || indice == 0) {
				Alert.show("Não foi possivel ler os dados, verifique se o browser possui JavaScript habilitado ou se existe arquivo informado","Erro",4,parentApplication as Sprite);
				return;
			}
			
			cursorManager.setBusyCursor();
			loader = new URLStream();
			loader.addEventListener(ProgressEvent.PROGRESS,progressHandler);
			loader.addEventListener(Event.COMPLETE,loaderResultHandler);
			loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
			loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, errorHandler)  
			var request:URLRequest = new URLRequest (parametro);
			trace(browserManager.url);
			trace(parametro);
			try {
				loader.load(request);	
			} catch (error:Error) {
				Alert.show("Não foi possivel ler a URL, verifique se o browser possui JavaScrip habilitado");
				cursorManager.removeBusyCursor();
			}
		}
		
		private function progressHandler(evt:ProgressEvent):void {
			progresso.text = "Lidos: " + evt.bytesLoaded.toString() + " de " + evt.bytesTotal.toString();
		}
		
		private function loaderResultHandler (event:Event):void
		{
			var ba:ByteArray = new ByteArray();  
			loader.readBytes(ba);  
			loader.close();
			ba.uncompress();    
			main.sped = new XML(ba.toString());
			cursorManager.removeBusyCursor();
			progresso.text = "";
		} 
		
		private function errorHandler(event:ErrorEvent):void {
			Alert.show(event.text,"Erro ao carregar os dados");
		}
		
		
	]]>
</mx:Script>

<ns1:Main left="10" right="10" top="10" bottom="10" id="main">
</ns1:Main>
<mx:Text id="progresso" text="Lendo dados..." bottom="20" left="20"/>

</mx:Application>
[/code]

Juceli,
Como comentei se vc está acessando um recurso de outro servidor q não seja onde está o seu swf vc tera erro de segurança, coisa q não acontece qd está na IDE.
Para contornar isso vc terá q ter o crossdomain.xml no servidor de destino abaixo alguns links sobre isso:
http://blog.msdevstudio.net/2008/09/10/tutorial-crossdomainxml-nao-deixe-o-flex-complicar/
http://www.igorcosta.com/blog/?p=83
http://www.jamesward.com/2009/11/08/how-bad-crossdomain-policies-expose-protected-data-to-malicious-applications/

 No caso acima vc tb pode solicitar para o seu server buscar esta informação para vc. Isto é, o teu Flex solicita para o teu server (PHP, JAVA, etc) e este pega a informação e te retorna.
 Outra coisa vc pode usar tb o HttpService para fazer requisições http em vez do loader.

Qq coisa estamos aí
[]s

Como ficaria esta implmentação em HttpServer?

Juceli,
Mas o xml q vc está acessando é de outro domínio diferente daquele onde está o swf? Pq se for diferentes dará o mesmo erro de segurança independente de forma de comunicação.

[]s

Juceli,
Vc pode ver exemplos de HTTPService no Tour de Flex http://www.adobe.com/devnet-archive/flex/tourdeflex/web/#illustIndex=0;sampleId=12800;docIndex=0 > Flex Data Access > HTTPService.

[]s