2006-10-25

Flex 2 com ColdFusion 7.0.2 configurando

Postei a algum tempo este conteúdo no fórum mxstudio.

Com os seguintes serviços:
- Jacarta
- Coldfusion MX 7 (7.0.2) (instância cfusion)

Abra o administrador coldfusion, e siga os passos:
1 - acesse o painel de configuração Flex Integration
2 - habilite o suporte a Flash Remoting
3 - altere o id do serviço, que estará em service-config.xml, para ColdFusion (pode ser outro, mas deve ser o mesmo id em destinação do arquivo de configuração)

exemplo

E o meu "{catalina}/cfusion/web-inf/flex/services-config.xml" está exatamente como a seguir.

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

<services>
<service id="coldfusion-flashremoting-service" class="flex.messaging.services.RemotingService" messageTypes="flex.messaging.messages.RemotingMessage">

<adapters>
<adapter-definition id="cf-object" class="coldfusion.flash.messaging.ColdFusionAdapter" default="true"/>
</adapters>

<destination id="ColdFusion">
<channels>
<channel ref="my-cfamf"/>
</channels>
<properties>
<source>*</source>
<!-- define the resolution rules and access level of the cfc being invoked -->
<access>
<!-- Use the ColdFusion mappings to find CFCs, by default only CFC files under your webroot can be found. -->
<use-mappings>true</use-mappings>
<!-- allow "public and remote" or just "remote" methods to be invoked -->
<method-access-level>remote</method-access-level>
</access>

<property-case>
<!-- cfc property names -->
<force-cfc-lowercase>false</force-cfc-lowercase>
<!-- Query column names -->
<force-query-lowercase>false</force-query-lowercase>
<!-- struct keys -->
<force-struct-lowercase>false</force-struct-lowercase>
</property-case>
</properties>
</destination>

</service>
</services>

<channels>
<channel-definition id="my-cfamf" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://localhost:8080/cfusion/flex2gateway/" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>false</polling-enabled>
<serialization>
<!-- <instantiate-types>false</instantiate-types> -->
<custom-deserializer type="typed-object" class="coldfusion.flash.messaging.io.amf.serializers.TypedObjectDeserializer" />
</serialization>
</properties>
</channel-definition>
</channels>

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

<system>
</system>

</services-config>



E para testar crie um componente, da mesma forma que utiliza-se em uma aplicação Flash tradicional.

O componente "{catalina}/cfusion/flex/dados.cfc" do teste.

<cfcomponent name="dados" alias="flex.dados">
<cffunction name="getDados" output="false" access="remote" returntype="string">
<cfargument name="dado" type="string" required="yes">
<cfreturn Arguments.dado>
</cffunction>
</cfcomponent>


O MXML "{catalina}/cfusion/flex/dados.mxml" do teste.

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
<mx:RemoteObject id="cf" destination="ColdFusion" source="flex.dados"
result="mx.controls.Alert.show(event.result as String)"
showBusyCursor="true" />
<mx:TextInput id="field"/>
<mx:Button label="Button" click="cf.getDados({dado:field.text} as Object)"/>
</mx:Application>


Espero que não tenham dificuldades, de outra forma comentem.

6 comentários:

Leandro Machado disse...

Muito legal isso amigo.
Teria possibilidade de vc postar um artigo da instalação do CF 7.02 com o Tomcat 5.5x?
Brigadão e sucesso!

Pedro Claudio disse...

Sei que não é o esperado, mas já é um começo, preciso conseguir um tempo para organizar isso, mas ai vai uma orientação.

1 - instale o J2SE 1.4.x
2 - instale o Tomcat
3 - Instale o CFMX7.0.2 cujo instaldo é o pacote axis.jar (o tipo de instalação é war)
4 - renomeie rds.war para CFIDE.war
5 - faça o deploy de cfusion.war e CFIDE.war, com o auxilio do manager
6 - configure os mappings no administrador cf

além disso, pode pesquisar alguma coisa sobre segurança cf.

Leandro Machado disse...

Blz, cara! valeus mesmo.
Só mais uma dúvida...
Após instalar com o JSE 1.4, se depois eu atualizar para o JSE 5 (1.5) ele paara de funcionar???
Brigadão cara!

Pedro Claudio disse...

Oficialmente o ColdFusion suporta jvm 1.4.x, vamos ver o CF8 se ultrapassa esta barreira.

Anônimo disse...

Pedro

O Scorpio já vem nativo com o SDK 1.5.0 e em testes está show.

Att.

Guilherme Augusto

Pedro Claudio disse...

Fala mais, assim num dá pra ter noção!!!