Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.

Error "Creating and running a contact manager application"

Avatar

Level 1
Hi,



I am trying to run the contact manager sample app and receive
the following client side error:



"Unable to find the ColdFusion Data Management Service in RMI
registry on 'localhost'.

Flex Data management support may not be enabled."



*tomcat 5.5.17

*coldfusion root is
http://localhost:8080/cfusion

*samples root is
http://localhost:8080/samples




http://localhost:8080/cfusion/contact_sample/samples/contact/testContactAssembler.cfm
is OK!



Does anyone know what I am doing wrong?



Thanks in advance.
5 Replies

Avatar

Level 1
Thanks for the reply!



however, i already following that..



Avatar

Level 2
I am having the same problem.



Can someone tell me...



What is the RMI registry?



Where is it getting 'localhost' from?



How is 'destination=ColdFusionGateway' in
C:\CFusionMX7\gateway\config\flex-messaging-gateway.cfg related to
the destinations defined in
C:\apache\Tomcat\server\webapps\contactmgr\WEB-INF\flex\data-management-config.xml



thx pwp

Avatar

Level 3
Re: pwp's questions - RMI is used by the
CFDataServicesAdapter in FDS to communicate with the ColdFusion
Message Gateway. This should be largely transparent to the user and
you shouldn't need to modify this file to get this sample running.
Note that the ColdFusion config for the message gateway at
\gateway\config\flex-messaging-gateway.cfg does not relate to your
destination configuration in the Flex
samples/WEB-INF/flex/data-management-config.xml. Also, it assumes
'localhost' by default so this means Flex must be running on the
same host as ColdFusion (but they can, of course, be on different
ports... for example, I have two JRun servers setup on the one
machine to run Flex and ColdFusion independently).



A question for you both - what version of ColdFusion are you
running? I imagine it's 7.0.2 as a war file deployment? Have you
checked that you have a /WEB-INF/flex directory in your ColdFusion
deployment? Is there a services-config.xml and license.properties
file in here? Do you see any status messages on ColdFusion startup
about "Starting Adobe Flex Data Services 2 Express" in the app
stdout logs?



I ran through the config and can see how these particularly
tricky set of steps might be hard to get right. Let me show you
waht I did to get it working...



Here's the files I added to my exploded deployment of FDS
samples.war after unzipping the folder to the webroot:



/dataservice/contact/samples/contact/Contact.as

/dataservice/contact/contactmgr.mxml

/dataservice/contact/Hourglass.mxml

/dataservice/contact/mini.mxml

/dataservice/contact/wait.png



I then looked in contactmgr.mxml and checked that the
DataService was being constructed with the correct destination
name. The Script block had the following line in the private
initApp function:



ds = DataService("cfcontact-default");



but I noticed that this destination was different to the one
that I had copied from the FDS example config
/resources/config/data-management-config.xml to my
samples/WEB-INF/flex/data-management-config.xml. That is, the
resources config example had the destination id set to "cfcontact"
but the contactmgr.mxml file expected it to be "cfcontact-default".
Correcting either the config or the source so that they both
matched fixed this problem.



I also ensured that the "coldfusion-dao" adapter-definition
was added to my samples/WEB-INF/flex/data-management-config.xml
file.



Next, I made sure that I copied the correct ColdFusion
specific channel definitions from
/resources/config/services-config.xml to my
samples/WEB-INF/flex/services-config.xml. Be sure to only copy
these channel defintions to the samples war and do not copy them to
other war files (and not to coldfusion either) as these are
intended to help the Flex client communicate to a ColdFusion
endpoint. (Also note that the RTMP channel listens on a specific
configured port so cutting and pasting channel definitions to other
apps will cause collisions if the port is not first modified to be
unique for those other apps).



I then deployed the ColdFusion specific files to my new
ColdFusion 7.0.2 installation. The file structure at the webroot
looked like this:



/samples/contact/db/contact.mdb

/samples/contact/Contact.cfc

/samples/contact/ContactAssembler.cfc

/samples/contact/ContactDAO.cfc

/samples/contact/testContactAssembler.cfm



I then had to go into the administrator (also be sure to do
this if you've just completed a fresh installation as it seems
there are some remaining steps that setup CF on the first access to
the admin) and create the data source for the MS Access DB file and
also created a ColdFusion Mapping for /samples to point to the
physical location of the ColdFusion web application /samples
directory (this confused me at first as I made the mistake of
deploying everything to the Flex samples war and pointed this
mapping over to that /samples instead of to the ColdFusion /samples
- my mistake).



I restarted both applications to be safe (though I believe
only the Flex war needed to be restarted after modification to the
configuration files)... and the contact sample compiled and ran
correctly.



Avatar

Level 3
Just a little more info on the destination in ColdFusion's
\gateway\config\flex-messaging-gateway.cfg - this is related to
pushing messages from ColdFusion back to the Flex Messaging
Service, so it is not related to either DataServices, nor this
example.