Boas pessoal..
Em aplicações web feitas em Flex é muito comum o uso de uma camada intermediária que possa acessar o sistema ou uma base de dados, o que tenho visto pr aí é o uso do PHP como esta camada intermediária, eu mesmo uso em projetos atuais o PHP, mas em certa ocasião tive de usar o Java, pois a base era Informix, então assim como o AMFPHP faz é a ponte entre o Flex e o PHP, o BlazeDs faz entre o Flex e o Java.
Neste post daremos coordenadas mais exutas possível.
Será assim:
Será assim:
Daremos as instruções iniciais, a implementação ( ou modelo do código ) e um exemplo.
Então vamos lá.
Preparando o Ambiente:
• Instalar o TomCat (presente no pacote de instalação do NetBeans)
• Criar uma pasta do projeto na pasta [@tomcat/webapps/]
• Descompactar o blazeds.war na pasta [@tomcat/webapps/[projeto]/]
• Editar o arquivo [@tomcat/webapps/[projeto]/WEB-INF/flex/remoting-config.xml]
implementação:
<destination id="[id destination]">
<properties><source>[package].[class]</source></properties>
</destination>
<properties><source>[package].[class]</source></properties>
</destination>
id destination → Este id será enxergado pelo Flex no atributo [destination@RemoteObject]
package → Nome do Pacote da classe no Lado JAVA
class → Nome da Class no Lado JAVA
ex.:
<destination id="dest_id">
<properties><source>Pjava.Valores</source></properties>
</destination>
<properties><source>Pjava.Valores</source></properties>
</destination>
Lado FLEX:
• Criar um novo projeto.
• Instanciar o objeto RemoteObject.
implementação:
<mx:RemoteObject id="[identificador]"
endpoint="http://[servidor]:[porta]/[pasta do projeto]/messagebroker/amf"
destination="[id destination]"
showBusyCursor="true"
fault="[caso falhar]"
result="[caso sucesso]"/>
endpoint="http://[servidor]:[porta]/[pasta do projeto]/messagebroker/amf"
destination="[id destination]"
showBusyCursor="true"
fault="[caso falhar]"
result="[caso sucesso]"/>
identificador → identificador do objeto RemoteObject
servidor → nome ou IP do servidor
porta → porta em que está o serviço do TomCat
id destination → Este é o id da tag destination no arquivo:
@tomcat/webapps/[projeto]/WEB-INF/flex/remoting-config.xml
caso falhar → O evento é disparado quando ocorre alguma falha na transação
caso sucesso → O evento é disparado quando a transação é bem sucedida, a classe [event] trás o resultado no atributo [result].
implementação: event.result
ex.:
<mx:RemoteObject id="rm"
endpoint="http://localhost:8080/meuprojeto/messagebroker/amf"
destination="dest_id"
showBusyCursor="true"
fault="Alert.show('Falha na transação')"
result="{Alert.show(event.result.toString())}"/>
endpoint="http://localhost:8080/meuprojeto/messagebroker/amf"
destination="dest_id"
showBusyCursor="true"
fault="Alert.show('Falha na transação')"
result="{Alert.show(event.result.toString())}"/>
implementação:
<mx:[objeto] click="{ identificador.atributo@Java }"/>
objeto
identificador → O ID do RemoteObject
atributo@Java → Atributo, Método ou evento no Lado JAVA
ex.:
<mx:Button click="{rm.getValor()}"/>
Lado JAVA:
• Criar um novo projeto.
• Criar uma nova classe (esta classe é chamada pelo destination)
• Criar atributos, métodos ou eventos de acordo com a necessidade
implementação:
public String [atributo] = [valor];
public String [método]() {
return [valor];
}
public String [método]() {
return [valor];
}
atributo → Nome do atributo (Este deve ser o nome chamado no objeto de envocação no Lado FLEX)
método → Nome do método (Este deve ser o nome chamado no objeto de envocação no Lado FLEX)
valor → Valor que será retornado ao Flex
ex. de método:
public String getValor(){
return "meu valor";
}
return "meu valor";
}
Ainda no Ambiente:
• Copiar o conteúdo da pasta [[projeto flex]/bin-debug/] para a pasta [@tomcat/webapps/[projeto]/]
• Copiar as os arquivos *.class do projeto JAVA para a pasta [@tomcat/webapps/[projeto]/WEB-INF/class/]
Executando:
• Acessar url: [http://[servidor]:[porta]/webapps/[projeto]/[flex].html]
Diagrama:
Muito bem pessoal, está aí mais um post, aproveitem.
Até o próximo...
Até o próximo...