terça-feira, 30 de março de 2010

Context root

Quando se cria um Flex Project informando que será utilizado o BlazeDS mantendo a maioria das opções com seus valores default ao testar uma chamada de um RemoteObject pode dar erro de envio.
Isto acontece porque em Project > Properties > Flex Server está com a opção Context root igual o conteúdo da opção Content folder que foi informada no wizard de criação do seu Flex Project.
Esta opção deve ser mudada para ficar igual a mesma opção da aba Web Project Settings.

Lembre-se que o services-config.xml normalmente terá a variável {context.root} que é trocada no momento da compilação pelo conteúdo de Context root da aba Flex Server, ocasionando o erro numa chamada de um RemoteObject pois deveria estar o valor da outra aba.

Procurando no Adobe Bug System encontrei este bug relatado nos seguintes links:
FB-26246 Context Root variable set incorrectly
FB-11617 The context root is not set correctly when creating a J2EE + WTP project

Quem quiser votem, lembre-se que quanto mais votos mais irá chamar a atenção do Flex Team.

10 comentários:

  1. legal estou com esse problema aki!!
    como faz para votar la..??

    ResponderExcluir
  2. Se vc for pelo site principal https://bugs.adobe.com/flex/ vc terá a opção "Register / Create new account"

    Se vc ir pelos bugs a esquerda terá o link "logged in" q o leva para outra página onde vc terá o link "Not a member? Sign up for an account."

    Uma vez cadastrado vc pode registrar novos bugs e votar naqueles q lhe interessam.

    Lembrando quanto mais votos um bug tiver mais fácil será para chamar a atenção do Flex Team para eles corrigirem e liberarem numa nova versão.
    Lá vc tb pode ver todas as correções q entraram em cada versão tipo SDK 3.5.

    ResponderExcluir
  3. Exemplo de bugs corrigidos no SDK 3.5
    http://fabiophx.blogspot.com/2009/11/flex-sdk-35.html

    ResponderExcluir
  4. fabio, tenho um hello word que esta acontecendo esse erro: minhas variaveis estao assim:

    http://img9.imageshack.us/img9/9168/javaflex.jpg

    e ainda assim esta acontecendo o erro, postei a minha duvida completa no guj:
    http://www.guj.com.br/posts/list/199425.java
    se vc tiver tempo, de uma olhada pra ver se vc pode me ajudar,...

    vlws

    ResponderExcluir
  5. Um link q achei q fala sobre este situação:
    http://www.adobe.com/devnet/flex/articles/flex_hibernate.html
    fala quais os arquivos devem ser alterados na mão para corrigir esta situação

    ResponderExcluir
  6. No Flash Builder 4, isto está corrigido, a opção Context root mostra o valor correto e está bloqueada.

    ResponderExcluir
  7. Desconsiderem o meu último comentário, me precipitei.
    Veja mais: http://fabiophx.blogspot.com/2010/05/context-root-ii.html

    ResponderExcluir
  8. 1 - Para configurar o contextRoot você deve entrar na raiz do seu projeto flex;

    2 - Depois abra o arquivo .flexproperties;

    3 - Dentro do arquivo, visualize a opção
    flexContextRoot="/WebContent" e mude para o mesmo nome da contextRoot da sua aplicação, por exemplo, o nome do seu projeto.

    Exemplo:

    Mude de:

    serverContextRoot="/WebContent"

    para:
    serverContextRoot="/TesteGiordano"

    Espero Ter ajudado.
    Att,
    Giordano Mesquita Galdino - Desenvolvedor Java/Flex - ItapipocaCE.

    ResponderExcluir
  9. Isto mesmo Giordano, obrigado, neste e no meu outro post http://fabiophx.blogspot.com/2010/05/context-root-ii.html faltou um exemplo mas prático.

    []s

    ResponderExcluir
  10. Gelson Lopes Stoduto7 de julho de 2011 às 18:33

    Fabio,

    Estou com um problema que não consigo resolver. Fiz uma
    aplicação em Java com flex 3 para um cliente, e até já
    coloquei a mesma em um servidor de hospedagem. O problema
    é que quando digito a senha na tela principal, aparece
    a seguinte mensagem:

    Erro = Falha no envio.

    Não sei mais o que fazer, e o cliente está me pressionando.

    Peço a sua ajuda por favor!

    Na propriedade Flex Server da minha aplicação aparece
    Root URL = http://localhost:8080/MCI e Context root = /MCI
    onde MCI é o nome da minha aplicação.

    ----------------------------------------------
    Meu services-config está assim:


























    false






    true
    4









    [BlazeDS]
    false
    false
    false
    false


    Endpoint.*
    Service.*
    Configuration






    false







    Gelson Stoduto

    ResponderExcluir