Well Pete, I finally got it to work. It seems like the problem was in using the Spring framework. Something about setting either the context-param or listener for Spring in my web.xml file was causing the conflict. Once I removed these references and simply instantiated the bean in my Assembler class instead of having Spring inject it, all worked as expected.
I have read http://www.devx.com/Adobe/Article/31489 about the changes to beta3 and one of the points was Flex Data Services has better support for Spring. However, as of yet I cannot find any references in the documentation about the usage of Spring with FDS. Has anyone else used Spring with FDS or has a reference on how that might be done? Thanks, Mike --- In [email protected], "Peter Farland" <[EMAIL PROTECTED]> wrote: > > Hmm, it looks like the endpoints are starting up fine, but there's > something wrong with the destination configuration as the error message > shows that the data service doesn't believe it has that destination > configured. You restarted the server after modifying the configuration > files, right? Also, you cleaned and forced a recompile of the mxml after > changing the configuration? > > If you can't solve it, would it be possible to send a .war of the app to > me off line? > > Pete > > ________________________________ > > From: [email protected] [mailto:[EMAIL PROTECTED] On > Behalf Of Mike_Robinson_98 > Sent: Wednesday, June 21, 2006 8:03 PM > To: [email protected] > Subject: [flexcoders] Re: Flex dataservices: > > > > Pete, thanks for the response. Yes, you're probably right. It appears > that the endpoints are not being created. My guess is it has something > to do with a security setting ( I removed all references to security > in the config files, as they did not seem necessary). That's just a > wild guess. Here's some of the log from the stdout.log file. > > // from stdout.log > // *******************************************' > Loading configuration file C:\Tomcat > 5.5\webapps\metalsmith\WEB-INF\flex\flex-webtier-config.xml, root > element flex-webtier-config > Loading configuration file C:\Tomcat > 5.5\webapps\metalsmith\WEB-INF\flex\flex-config.xml, root element > flex-config > 06/21 12:13:12 DEBUG configuration service started. > 06/21 12:13:12 DEBUG logger services started. > Loading configuration file C:\Tomcat > 5.5\webapps\samples\WEB-INF\flex\flex-webtier-config.xml, root element > flex-webtier-config > Loading configuration file C:\Tomcat > 5.5\webapps\samples\WEB-INF\flex\flex-config.xml, root element > flex-config > [Flex] [INFO] Starting Adobe Flex Data Services 2.0 Express (beta > period ends Jul 31, 2006) > [Flex] [INFO] Adobe Flex Data Services Build: 138139 > [Flex] [INFO] Endpoint my-amf created with security: None > at URI: > http://{server.name}:{server.port}/{context.root}/messagebroker/amf > [Flex] [INFO] Endpoint my-polling-amf created with security: None > at URI: > http://{server.name}:{server.port}/{context.root}/messagebroker/amfpolli > ng > [Flex] [INFO] Endpoint my-http created with security: None > at URI: > http://{server.name}:{server.port}/{context.root}/messagebroker/http > [Flex] [INFO] Endpoint my-secure-amf created with security: None > at URI: > https://{server.name}:9100/{context.root}/messagebroker/amfsecure > [Flex] [INFO] Endpoint my-rtmp created with security: None > at URI: rtmp://{server.name}:2037 > [Flex] [INFO] Endpoint my-secure-http created with security: None > at URI: > https://{server.name}:9100/{context.root}/messagebroker/httpsecure > [Flex] [ERROR] Exception when invoking service: data-service > with message: Flex Message (flex.data.messages.DataMessage) > operation = fill > id = null > clientId = 495BED4E-B85F-C791-613D-F802D929ADAE > correlationId = > destination = orderRow > messageId = 699A031A-F1DF-2517-DE70-F802D9394E53 > timestamp = 1150917204500 > timeToLive = 0 > body = > [ > > ] > hdr(DSEndpoint) = my-rtmp > exception: flex.messaging.MessageException: No destination > 'orderRow' exists in service flex.data.DataService > > - Mike > > --- In [email protected] <mailto:flexcoders%40yahoogroups.com> > , "Peter Farland" <pfarland@> wrote: > > > > Mike, > > > > The fact that the error said the send failed means that perhaps the > RTMP > > channel isn't running... so I'm guessing something went wrong on > > starting the web application. Most likely the configuration was > invalid. > > Can you look at the server startup output (perhaps in the console > window > > itself or in the web application logs... depending on how you launched > > Tomcat) for an indication as to whether there were such errors, and, > > hopefully, a clue as to what is wrong with the config? > > > > Pete > > > > > > ________________________________ > > > > From: [email protected] <mailto:flexcoders%40yahoogroups.com> > [mailto:[email protected] <mailto:flexcoders%40yahoogroups.com> > ] On > > Behalf Of Mike_Robinson_98 > > Sent: Wednesday, June 21, 2006 2:35 PM > > To: [email protected] <mailto:flexcoders%40yahoogroups.com> > > Subject: [flexcoders] Flex dataservices: > > > > > > > > I have read some of the posts on issues similar to this one. > > Especially the Hank Williams and Peter Farland exchange. However, this > > problem is different enough that their posts did not help. > > > > I am trying to adapt the samples examples to work with an app I am > > developing. (BTW, all the samples work on my Tomcat test server > > running on Windows.) > > > > The issues I have is a failure when I try to a fill on a DataService. > > I've attempted to simplify the configuration files but I must have > > left something out. Anyone who has some experience in this area may > > easily spot my mistake but I have tried all the changes I can think of > > without any change in the result. > > > > Here are the gory details: > > > > // This is the script that creates the data service and tries to > > populate the orders arraycollection. > > <mx:Script> > > <![CDATA[ > > import mx.data.DataService; > > import mx.collections.ArrayCollection; > > import com.othenos.metalsmith.order.OrderRow; > > public var ds:DataService; > > [Bindable] > > public var orders:ArrayCollection; > > [Bindable] > > public var orderRow:OrderRow; > > > > public function initApp():void{ > > orders = new ArrayCollection(); > > ds = new DataService("orderRow"); > > ds.fill(orders); > > } > > ]]> > > </mx:Script> > > > > // Here is the AS class that acts as the DTO > > // ************************************************** > > package com.othenos.metalsmith.order > > { > > import mx.data.IManaged; > > import mx.data.utils.Managed; > > import mx.core.MXMLObjectAdapter; > > > > [Managed] > > [RemoteClass(alias="com.othenos.metalsmith.order.OrderRow")] > > public class OrderRow > > { > > public var orderID:int; > > public var orderDate:Date; > > public var orderAmount:Number; > > public var status:String = ""; > > public var salesmanName:String = ""; > > public var customerName:String = ""; > > } > > } > > > > // Part of the Java class that is the Assembler > > // ******************************************************** > > public class OrderAssembler { > > public List loadOrders(){ > > try{ > > return orderDao.getOrders(); > > } > > catch(ModuleException me){ > > System.out.println("Exception in getting orders - " + > > me.getMessage()); > > } > > return null; > > } > > > > // The flex-enterprise-services.xml > > // **************************************************** > > <?xml version="1.0" encoding="UTF-8"?> > > <services-config> > > > > <services> > > <service-include file-path="flex-data-service.xml" /> > > </services> > > > > <channels> > > <channel-definition id="my-rtmp" > > class="mx.messaging.channels.RTMPChannel"> > > <endpoint uri="rtmp://{server.name}:2037" > > class="flex.messaging.endpoints.RTMPEndpoint"/> > > <properties> > > <idle-timeout-minutes>20</idle-timeout-minutes> > > <!-- for deployment on WebSphere, must be mapped to a > > WorkManager available in the web application's jndi context. > > > > > <websphere-workmanager-jndi-name>java:comp/env/wm/MessagingWorkManager</ > > websphere-workmanager-jndi-name> > > --> > > </properties> > > </channel-definition> > > > > </channels> > > > > <logging> > > <!-- You may also use flex.messaging.log.ServletLogTarget --> > > <!-- You may also use flex.messaging.log.ConsoleTarget --> > > <target class="flex.messaging.log.ConsoleTarget" level="Debug"> > > <properties> > > <prefix>[Flex] </prefix> > > <includeDate>true</includeDate> > > <includeTime>true</includeTime> > > <includeLevel>true</includeLevel> > > <includeCategory>true</includeCategory> > > </properties> > > <filters> > > <!--<pattern>Endpoint.*</pattern>--> > > <!--<pattern>Service.*</pattern>--> > > <pattern>Message.*</pattern> > > <pattern>DataService.*</pattern> > > <pattern>Configuration</pattern> > > </filters> > > </target> > > </logging> > > > > <system> > > <redeploy> > > <enabled>true</enabled> > > <watch-interval>20</watch-interval> > > > > > <watch-file>{context.root}/WEB-INF/flex/flex-enterprise-services.xml</wa > > tch-file> > > > > > <watch-file>{context.root}/WEB-INF/flex/flex-data-service.xml</watch-fil > > e> > > <touch-file>{context.root}/WEB-INF/web.xml</touch-file> > > </redeploy> > > </system> > > > > </services-config> > > > > // The flex-data-service.xml > > // ****************************************************** > > <?xml version="1.0" encoding="UTF-8"?> > > <service id="data-service" > > class="flex.data.DataService" > > messageTypes="flex.data.messages.DataMessage"> > > > > <adapters> > > <adapter-definition id="java-dao" > > class="flex.data.adapters.JavaAdapter"/> > > </adapters> > > > > <default-channels> > > <channel ref="my-rtmp"/> > > </default-channels> > > > > <destination id="orderRow"> > > > > <adapter ref="java-dao" /> > > > > <properties> > > <source>com.othenos.metalsmith.order.OrderAssembler</source> > > <scope>application</scope> > > > > <metadata> > > <identity property="orderID"/> > > </metadata> > > > > <network> > > <session-timeout>20</session-timeout> > > <paging enabled="false" pageSize="10" /> > > <throttle-inbound policy="ERROR" max-frequency="500"/> > > <throttle-outbound policy="REPLACE" max-frequency="500"/> > > </network> > > > > <server> > > <fill-method> > > <name>loadOrders</name> > > </fill-method> > > > > <sync-method> > > <name>syncOrders</name> > > </sync-method> > > </server> > > </properties> > > </destination> > > > > </service> > > > > // The web.xml > > // ************************************************************** > > <?xml version="1.0" encoding="ISO-8859-1"?> > > > > <web-app xmlns="http://java.sun.com/xml/ns/j2ee > <http://java.sun.com/xml/ns/j2ee> > > <http://java.sun.com/xml/ns/j2ee <http://java.sun.com/xml/ns/j2ee> > " > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance > <http://www.w3.org/2001/XMLSchema-instance> > > <http://www.w3.org/2001/XMLSchema-instance > <http://www.w3.org/2001/XMLSchema-instance> > " > > xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee > <http://java.sun.com/xml/ns/j2ee> > > <http://java.sun.com/xml/ns/j2ee <http://java.sun.com/xml/ns/j2ee> > > web-app_2_4.xsd" > > version="2.4"> > > > > <context-param> > > <param-name>contextConfigLocation</param-name> > > > > > <param-value>/WEB-INF/conf/metalsmith-servlet.xml,/WEB-INF/conf/metalsmi > > th-service.xml,/WEB-INF/conf/metalsmith-data.xml</param-value> > > </context-param> > > > > <context-param> > > <param-name>flex.class.path</param-name> > > > > <param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value> > > </context-param> > > > > <!-- NOTE: ContextLoaderListener may not work for all application > > servers. If it does not work for yours, you must use > > ContextLoaderServlet instead. See page XXX, chapter 8 > > for more information. --> > > <listener> > > > > > <listener-class>org.springframework.web.context.ContextLoaderListener</l > > istener-class> > > </listener> > > > > <!-- Struts Servlet --> > > <servlet> > > <servlet-name>action</servlet-name> > > <servlet-class>org.apache.struts.action.ActionServlet</servlet-class> > > <init-param> > > <param-name>application</param-name> > > <param-value>applicationResources</param-value> > > </init-param> > > <init-param> > > <param-name>config</param-name> > > <param-value>/WEB-INF/conf/struts-config.xml</param-value> > > </init-param> > > <init-param> > > <param-name>chainConfig</param-name> > > > > <param-value>org/apache/struts/tiles/chain-config.xml</param-value> > > </init-param> > > <init-param> > > <param-name>debug</param-name> > > <param-value>0</param-value> > > </init-param> > > <init-param> > > <param-name>detail</param-name> > > <param-value>0</param-value> > > </init-param> > > <init-param> > > <param-name>validate</param-name> > > <param-value>true</param-value> > > </init-param> > > <load-on-startup>1</load-on-startup> > > </servlet> > > > > <!-- MessageBroker Servlet --> > > <servlet> > > <servlet-name>MessageBrokerServlet</servlet-name> > > <display-name>MessageBrokerServlet</display-name> > > <servlet-class>flex.messaging.MessageBrokerServlet</servlet-class> > > <init-param> > > <param-name>services.configuration.file</param-name> > > > > <param-value>/WEB-INF/flex/flex-enterprise-services.xml</param-value> > > </init-param> > > <load-on-startup>1</load-on-startup> > > </servlet> > > > > <servlet> > > <servlet-name>FlexMxmlServlet</servlet-name> > > <display-name>MXML Processor</display-name> > > <description>Servlet wrapper for the Mxml Compiler</description> > > <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class> > > <init-param> > > <param-name>servlet.class</param-name> > > <param-value>flex2.server.j2ee.MxmlServlet</param-value> > > </init-param> > > <init-param> > > <param-name>webtier.configuration.file</param-name> > > > > <param-value>/WEB-INF/flex/flex-webtier-config.xml</param-value> > > </init-param> > > <load-on-startup>1</load-on-startup> > > </servlet> > > > > <servlet> > > <servlet-name>FlexSwfServlet</servlet-name> > > <display-name>SWF Retriever</display-name> > > <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class> > > <init-param> > > <param-name>servlet.class</param-name> > > <param-value>flex2.server.j2ee.SwfServlet</param-value> > > </init-param> > > <!-- SwfServlet must be initialized after MxmlServlet --> > > <load-on-startup>2</load-on-startup> > > </servlet> > > > > <servlet> > > <servlet-name>FlexInternalServlet</servlet-name> > > <servlet-class>flex.bootstrap.BootstrapServlet</servlet-class> > > <init-param> > > <param-name>servlet.class</param-name> > > > > > <param-value>flex.server.j2ee.filemanager.FileManagerServlet</param-valu > > e> > > </init-param> > > <load-on-startup>10</load-on-startup> > > </servlet> > > <!-- Standard Action Servlet Mapping --> > > <servlet-mapping> > > <servlet-name>action</servlet-name> > > <url-pattern>*.do</url-pattern> > > </servlet-mapping> > > > > <servlet-mapping> > > <servlet-name>MessageBrokerServlet</servlet-name> > > <url-pattern>/messagebroker/*</url-pattern> > > </servlet-mapping> > > > > <servlet-mapping> > > <servlet-name>FlexMxmlServlet</servlet-name> > > <url-pattern>*.mxml</url-pattern> > > </servlet-mapping> > > > > <servlet-mapping> > > <servlet-name>FlexSwfServlet</servlet-name> > > <url-pattern>*.swf</url-pattern> > > </servlet-mapping> > > > > <servlet-mapping> > > <servlet-name>FlexInternalServlet</servlet-name> > > <url-pattern>/flex-internal/*</url-pattern> > > </servlet-mapping> > > > > <resource-ref> > > <description>mySQL Datasource example</description> > > <res-ref-name>jdbc/mysql</res-ref-name> > > <res-type>javax.sql.DataSource</res-type> > > <res-auth>Container</res-auth> > > </resource-ref> > > > > </web-app> > > > > // And finally, the error messages when trying to fill the dataservice > > // ***************************************************************** > > [SWF] /metalsmith/metalsmith-flex/metalsmith-debug.swf - 1,072,216 > > bytes after decompression > > 'cds-producer-orderRow-null' producer set destination to 'orderRow'. > > 'cds-consumer-orderRow-null' consumer set destination to 'orderRow'. > > cds-producer-orderRow-null New DataManager destination='orderRow' > > cds-producer-orderRow-null DataService.fill() called with 0 arguments. > > > (Array)#0 > > > > 'cds-producer-orderRow-null' producer sending message > > '82E7A818-D646-A9FB-381A-F7BFE881D5A8' > > 'my-rtmp' channel endpoint set to rtmp://localhost:2037 > <rtmp://localhost:2037> > > <rtmp://localhost:2037 <rtmp://localhost:2037> > > > 'my-rtmp' channel settings are: > > <channel id="my-rtmp" type="mx.messaging.channels.RTMPChannel"> > > <endpoint uri="rtmp://{server.name}:2037"/> > > <properties> > > <idle-timeout-minutes>20</idle-timeout-minutes> > > </properties> > > </channel> > > 'my-rtmp' channel got status. (Object)#0 > > code = "NetConnection.Connect.Failed" > > level = "error" > > 'my-rtmp' channel polling stopped. > > 'my-rtmp' channel connect failed. > > 'cds-consumer-orderRow-null' consumer channel faulted with > > Channel.Connect.Failed null > > 'cds-producer-orderRow-null' producer channel faulted with > > Channel.Connect.Failed null > > 'cds-producer-orderRow-null' producer fault for > > '82E7A818-D646-A9FB-381A-F7BFE881D5A8'. > > [RPC Fault faultString="Send failed" > > faultCode="Client.Error.MessageSend" > > faultDetail="Channel.Connect.Failed error null"] > > at > > > mx.data::ConcreteDataService/http://www.adobe.com/2006/flex/mx/internal: > <http://www.adobe.com/2006/flex/mx/internal:> > > :dispatchFaultEvent > > <http://www.adobe.com/2006/flex/mx/internal::dispatchFaultEvent > <http://www.adobe.com/2006/flex/mx/internal::dispatchFaultEvent> > > > > ()[C:\dev\enterprise_beta3\frameworks\mx\data\ConcreteDataService.as:148 > > 2] > > at > > > ConcreteDataService.as$43::DataListRequestResponder/fault()[C:\dev\enter > > prise_beta3\frameworks\mx\data\ConcreteDataService.as:3883] > > at > > > mx.rpc::AsyncRequest/fault()[C:\dev\enterprise_beta3\frameworks\mx\rpc\A > > syncRequest.as:107] > > at > > > mx.messaging::ChannelSet/mx.messaging:ChannelSet::faultPendingSends()[C: > > \dev\enterprise_beta3\frameworks\mx\messaging\ChannelSet.as:946] > > at > > > mx.messaging::ChannelSet/channelFaultHandler()[C:\dev\enterprise_beta3\f > > rameworks\mx\messaging\ChannelSet.as:679] > > at flash.events::EventDispatcher/dispatchEvent() > > at > > > mx.messaging::Channel/mx.messaging:Channel::connectFailed()[C:\dev\enter > > prise_beta3\frameworks\mx\messaging\Channel.as:658] > > at > > > mx.messaging.channels::PollingChannel/mx.messaging.channels:PollingChann > > > el::connectFailed()[C:\dev\enterprise_beta3\frameworks\mx\messaging\chan > > nels\PollingChannel.as:111] > > at > > > mx.messaging.channels::RTMPChannel/mx.messaging.channels:RTMPChannel::st > > > atusHandler()[C:\dev\enterprise_beta3\frameworks\mx\messaging\channels\R > > TMPChannel.as:202] > > > ------------------------ Yahoo! Groups Sponsor --------------------~--> Yahoo! Groups gets a make over. See the new email design. http://us.click.yahoo.com/XISQkA/lOaOAA/yQLSAA/nhFolB/TM --------------------------------------------------------------------~-> -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/flexcoders/ <*> To unsubscribe from this group, send an email to: [EMAIL PROTECTED] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

