Entrar
Usuário novo? Cadastre-se
flex-brasil
? Você já é um associado? Entre no Yahoo!

Dicas

Você sabia...
Você pode ordenar suas mensagens por data? Basta clicar no link da coluna data. Suas preferências serão lembradas para que você não precise fazer isso novamente sempre que retornar.

Mensagens

  Ajuda
Avançado
Graniteds com unico mapeamento de Classe - tag <source>*</source> co   Lista de mensagens  
Responder Mensagem #7933 de 28450 |
Pessoal,
não sei quantos de vocês ja tiveram essa "problema", mas, usando o
Fluorine.Net você pode colocar no seu arquivo de configuração o
services-config.xml apenas um mapeamento para chamar qualquer classe,
usando a tag "source" configurada como "*" <source>*</source> e
apenas na propriedade "source" do seu objeto "RemoteObject"
especificar que classe quer acessar.
Você pode achar isso bobo e que se pode mapear todas as classes, para
sistemas pqnos talvez, mas, para sistemas grandes é uma perda de
tempo total alem do que pode levar a erros chatos de serem
encontrados.
Como o Granite não tem esse suporte resolvi adiciona-lo eu mesmo e
para quem quiser ai vai dica:
Modifique o arquivo:
org.granite.messaging.service.SimpleServiceFactory.java na linha 59,
adicione o seguinte codigo:
/*************/
Destination d = destination;
if (destination.getProperties().get("source").equals("*")){
Map<String, Object> propertiesMap = new HashMap<String, Object>();
propertiesMap.put("source", request.getSource());
d = new Destination(destination.getId(),
destination.getChannelRefs
(), propertiesMap, destination.getRoles());
}
/**************/
E modifique o codigo que fica logo abaixo desse que você adicionou:
/**************/
String key = SimpleServiceInvoker.class.getName() + '.' +
destination.getId();
SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
if (service == null) {
service = new SimpleServiceInvoker(destination, this);
cache.put(key, service);
}
/*****************/
Para:
/*****************/
String key = SimpleServiceInvoker.class.getName() + '.' +
d.getProperties().get("source"); //<--Muda Aqui
SimpleServiceInvoker service = (SimpleServiceInvoker)cache.get(key);
if (service == null) {
service = new SimpleServiceInvoker(d, this); //<--Muda Aqui
cache.put(key, service);
}
/****************/
Com isso você pode colocar a tag <source>*</source> do mapeamento no
arquivo de mapeamento services-config.xml desta forma afim de chamar
qualquer classe, como no exemplo abaixo:
<services>
<service
id="granite-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<destination id="pojo">
<channels>
<channel ref="my-graniteamf"/>
</channels>
<properties>
<scope>session</scope>
<source>*</source>
</properties>
</destination>
</service>
</services>
E no seu mxml mudar o objeto RemoteObject adicionando a classe na
propriedade source, como demostrado abaixo:
<mx:RemoteObject id="srv" showBusyCursor="true" destination="pojo"
source="test.pojo.PojoService"/>
Espero que isso ajude alguem, eu postei no grupo do GDS no yahoo,
pois, tinha gente pedindo isso lá tambem, e achei que seria
interessante colocar aqui, uma vez que tambem deve ter gente que usa
o flex com java e .net e ja sentiu falta disso!
Abraço a todos,
Jack




Qui, 27 de Set de 2007 3:21 am

ncc1701jack
Offline Offline
Enviar e-mail Enviar e-mail

Mensagem #7933 de 28450 |
Expandir mensagens Nome/E-mail Classificar por data

Pessoal, não sei quantos de vocês ja tiveram essa "problema", mas, usando o Fluorine.Net você pode colocar no seu arquivo de configuração o ...
ncc1701jack
Offline Enviar e-mail
27 de Set de 2007
3:21 am

Jack Otima aplicacao de uso, Ja mencionou essa alteracao para o Franck Wolf? Ele pode adicionar na proxima versao do GraniteDS Atenciosamente Igor Costa ... --...
Igor Costa
igorfrombrazil
Offline Enviar e-mail
27 de Set de 2007
4:53 pm

Fala Igor, eu ainda não tive tempo de instalar o google talk pra gente ter aquele papo, (estou concluindo um projeto grande para um banco federal usando java...
ncc1701jack
Offline Enviar e-mail
28 de Set de 2007
12:58 pm
Avançado

Copyright © 2010 Yahoo! do Brasil Internet Ltda. Todos os direitos reservados.
Política de Privacidade - Termos do Serviço - Diretrizes - Ajuda