Publicar uma aplicação Flex

11 respostas
vcsmetallica

Salve galera!

Galera seguinte, quando estou tentando publicar a minha aplicação flex, esta dando o seguinte erro:

faultCode:Client.Error.MessageSend faultString:'Send failed' faultDetail:'Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: 'http://www.cessistemas.com.br/WebContent/messagebroker/amf

no meu XML esta assim:

<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
        </channel-definition>

        <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
            <endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
            <properties>
                <add-no-cache-headers>false</add-no-cache-headers>
            </properties>
        </channel-definition>

        <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
            <properties>
                <polling-enabled>true</polling-enabled>
                <polling-interval-seconds>4</polling-interval-seconds>
            </properties>
        </channel-definition>

Como que eu resolvo esse problema?
O servidor que estou publicando o meu sistema é o IIS 7

Att

vcsmetallica

11 Respostas

Markus_Alemao

Você já verificou se a url : '//www.cessistemas.com.br/WebContent/messagebroker/amf ’ esta respondendo ? pode ser isso, verifica o arquivo de configuração do servlet e a String de chamada no call da parte client.

vcsmetallica

Entao, ja testei e nao funcionou.

Att

Ivan_Alves

Cara também estou com uma aplicação flex 3 e java com o mesmo problema já procurei em tudo quanto é canto, a resposta mais precisa que eu descobri foi que existe um serviço me parece que é um firewall chamado mod_security no servidor, ele não deixar você usar sua biblioteca que faz a comunicação com o backend, portanto é preciso desativo, o que não parece ser dificil, geralmente é só comunicar ao lugar que você hospeda o serviço que eles fazem isso.

segue o link onde achei essa resposta

http://groups.google.com/group/flexdev/browse_thread/thread/c8f24525f135e477/dfeb0649f915e17f?lnk=gst&q=send+failed&utoken=38qKSyoAAACtnMH6EbwlKGIjkx6Oo5d_T4EbIBfTan8GRKQhWXPvARYcGe5KWtJda44_CQS8gQY

se der tudo certo ou errado avisa aí.

flw

vcsmetallica

bom galera, mandei um email para o meu host desabilitar o mod_security. Agora aguardar a resposta deles.

feltraco

Voce nao esta chamando errado do seu Flex ?

Se esta assim no XML:
http://{server.name}:{server.port}/{context.root}/messagebroker/amf

Voce teria que acessar assim:

http://www.meuseite.com:8080/meuContexto/messagebroker/amf

Teste ai e fala.
Att

A

Por favor estou com esse problema ja a uma semana e nao consigo achar uma resolucao para esse caso.

Meu erro :

(mx.messaging.messages::ErrorMessage)#0
body = (Object)#1
clientId = (null)
correlationId = "2A6E3790-5F8D-91A3-0F79-1B3468728F8E"
destination = ""
extendedData = (null)
faultCode = "Client.Error.MessageSend"
faultDetail = "Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: ‘http://www.guidefit.com.br/GuideFace/messagebroker/amf’"
faultString = "Send failed"
headers = (Object)#2
messageId = "4554600F-77B3-2FDA-2ECA-1B3468FEAE07"
rootCause = (mx.messaging.events::ChannelFaultEvent)#3
bubbles = false
cancelable = false
channel = (mx.messaging.channels::AMFChannel)#4
authenticated = false
channelSets = (Array)#5
[0] (mx.messaging::ChannelSet)#6
authenticated = false
channelIds = (Array)#7
[0] "my-amf"
channels = (Array)#8
[0] (mx.messaging.channels::AMFChannel)#4
clustered = false
connected = false
currentChannel = (mx.messaging.channels::AMFChannel)#4
initialDestinationId = (null)
messageAgents = (Array)#9
[0] (mx.rpc::AsyncRequest)#10
authenticated = false
autoConnect = true
channelSet = (mx.messaging::ChannelSet)#6
clientId = (null)
connected = false
defaultHeaders = (null)
destination = "Fachada"
id = "1845A757-3935-ACE5-7875-1B345DD3A654"
reconnectAttempts = 0
reconnectInterval = 0
requestTimeout = -1
subtopic = ""
connected = false
connectTimeout = -1
enableSmallMessages = true
endpoint = "http://www.guidefit.com.br/GuideFace/messagebroker/amf"
failoverURIs = (Array)#11
id = "my-amf"
mpiEnabled = false
netConnection = (flash.net::NetConnection)#12
client = (mx.messaging.channels::AMFChannel)#4
connected = false
objectEncoding = 3
proxyType = "none"
uri = "http://www.guidefit.com.br/GuideFace/messagebroker/amf"
piggybackingEnabled = false
polling = false
pollingEnabled = true
pollingInterval = 3000
protocol = "http"
reconnecting = false
recordMessageSizes = false
recordMessageTimes = false
requestTimeout = -1
uri = "http://{server.name}:{server.port}/GuideFace/messagebroker/amf"
url = "http://{server.name}:{server.port}/GuideFace/messagebroker/amf"
useSmallMessages = false
channelId = "my-amf"
connected = false
currentTarget = (mx.messaging.channels::AMFChannel)#4
eventPhase = 2
faultCode = "Channel.Connect.Failed"
faultDetail = "NetConnection.Call.Failed: HTTP: Failed: url: ‘http://www.guidefit.com.br/GuideFace/messagebroker/amf’"
faultString = "error"
reconnecting = false
rejected = false
rootCause = (Object)#13
code = "NetConnection.Call.Failed"
description = "HTTP: Failed"
details = "http://www.guidefit.com.br/GuideFace/messagebroker/amf"
level = "error"
target = (mx.messaging.channels::AMFChannel)#4
type = "channelFault"
timestamp = 0
timeToLive = 0
[RPC Fault faultString=“Send failed” faultCode=“Client.Error.MessageSend” faultDetail=“Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Failed: url: ‘http://www.guidefit.com.br/GuideFace/messagebroker/amf’”]

//service-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<services>
    <service-include file-path="remoting-config.xml" />
    <service-include file-path="proxy-config.xml" />
    <service-include file-path="messaging-config.xml" />        
</services>

<security>
    <login-command class="flex.messaging.security.TomcatLoginCommand" server="Tomcat"/>
</security>

<channels>

    <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
        <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
    </channel-definition>

    <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
        <endpoint url="https://{server.name}:{server.port}/{context.root}/messagebroker/amfsecure" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
        <properties>
            <add-no-cache-headers>false</add-no-cache-headers>
        </properties>
    </channel-definition>

    <channel-definition id="my-polling-amf" class="mx.messaging.channels.AMFChannel">
        <endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolling" class="flex.messaging.endpoints.AMFEndpoint"/>
        <properties>
            <polling-enabled>true</polling-enabled>
            <polling-interval-seconds>4</polling-interval-seconds>
        </properties>
    </channel-definition>

</channels>

<logging>
    <target class="flex.messaging.log.ConsoleTarget" level="Error">
        <properties>
            <prefix>[BlazeDS] </prefix>
            <includeDate>false</includeDate>
            <includeTime>false</includeTime>
            <includeLevel>false</includeLevel>
            <includeCategory>false</includeCategory>
        </properties>
        <filters>
            <pattern>Endpoint.*</pattern>
            <pattern>Service.*</pattern>
            <pattern>Configuration</pattern>
        </filters>
    </target>
</logging>

<system>
    <redeploy>
        <enabled>false</enabled>
    </redeploy>
</system>

Por favor quem souber como resolver agradeço bastante.

Abraco

feltraco

Parece que quando vc chama se back-end nao esta identificando qual a porta.

Mostra seu codigo que faz a conexao com o java.

A

//remoting-config.xml

<?xml version="1.0" encoding="UTF-8"?>

<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="Fachada">
    <properties>
        <source>
           br.com.qualyfit.fachada.Fachada
        </source>
    </properties>
</destination>

A parte java

package br.com.RemoteObject

{

import mx.controls.Alert;

import mx.rpc.AsyncToken;

import mx.rpc.Responder;

import mx.rpc.events.FaultEvent;

import mx.rpc.remoting.mxml.RemoteObject;
public class InstanciaFachada extends RemoteObject
{
	private static var singleton:InstanciaFachada;  
	
	 public function InstanciaFachada(caller:Function = null){  
        super("amfphp");  
        this.showBusyCursor=true;  
        this.destination = "Fachada";
    }  
    
	public static function getInstance():InstanciaFachada{  
        if (singleton==null){  
            singleton = new InstanciaFachada();  
        }return singleton;   
    }  		

}

}

Obrigado

F

Boa tarde, como o feltraco comentou está chamando WebContent em vez do serverContext, isso acontece por causa de um bug no Flash Builder.
Espero q lhe seja útil:

http://fabiophx.blogspot.com/2010/03/context-root.html
http://fabiophx.blogspot.com/2010/05/context-root-ii.html

[]s

A

Fabiophx, fiz a mudança que vc sugeriu e nao funcionou :stuck_out_tongue: Continuo com o mesmo erro. Caso queira ver o erro : www.guidefit.com.br

Abracao e peco ajuda pois nao estou conseguindo resolver esse problema.

Obrigado

Ivan_Alves

Cara estava com esse erro que me ocorreu umas 2 vezes com foi subir minhas aplicações java é flex na primeira parece que eu liberei uma porta lá no servidor e funfou, agora na segunda vez foi feita uma alteração no Apache Tomcat que roda no servidor. Só que não sei qual foi essa alteração já que não foi eu que fiz.

Criado 27 de junho de 2011
Ultima resposta 27 de jan. de 2012
Respostas 11
Participantes 6