PDA

View Full Version : Where does the compiler write info from -services.xml?


wvxvw
04-11-2009, 02:50 PM
So, you well know you can specify -services "my_services.xml" with compiler arguments. this "my_services.xml" will contain the information about the WSDL location and some alias... basically. So, my question is, after you compile the SWF with such my_services.xml where is this information written and how would you access it if not from the mx.rpc.HTTPService or alike? (I would believe this is written as some property of the SystemManager or something like that... but searching through the framework sources haven't gave me any results so far...) so, if anyone knows how to access this info - please, feel free to share :p

Peter Cowling
04-11-2009, 07:15 PM
Hello,

See here (http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as).

wvxvw
04-11-2009, 08:37 PM
Oh... that's helpful... the part of it at least is very helpful.
Last thing to figure out is who's calling

/**
* @private
*/
public static function set xml(value:XML):void
{
serverConfigData = value;
// Reset cached Channels and ChannelSets.
_channelSets = {};
_clusteredChannels = {};
_unclusteredChannels = {};
} this...
Anyhoo, many thanks, now at least I have a direction to start digging :)

EDIT:
for anyone who wonders how this data is being set, here's the info:
set services XML: Error
at mx.messaging.config::ServerConfig$/set xml()[C:\www\versioned_projects\src\mx\messaging\config\ ServerConfig.as:164]
at _Main_FlexInit$/init()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()[E:\dev\trunk\frameworks\projects\framework\src\mx\ managers\SystemManager.as:3057]
at mx.managers::SystemManager/docFrameListener()[E:\dev\trunk\frameworks\projects\framework\src\mx\ managers\SystemManager.as:2915]
(you can replace the original ServerConfig class by copying into your local directory, calling it mx/messaging/config and putting there:
trace("set services XML:", new Error().getStackTrace());
well... the next tough one is... how to make Flex think my class is SystemManager... to get that info() object somehow...