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/amfpolling [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], "Peter Farland" <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] On > Behalf Of Mike_Robinson_98 > Sent: Wednesday, June 21, 2006 2:35 PM > To: [email protected] > 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> " > xmlns:xsi="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> 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> > '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: > :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/

