Choosing a channel from services-config.xml
How do I know the best data channel to select in a given situation? AMF, RTMP, HTTP, etc... I'd like to know the best channels for database communication or remoting but I can't find any documentation on selecting channels.
Does anyone have some tips or direction?
It depends on your constraints - for example if you are behind a firewall and you cannot a port for RTMP you are forced to used other channels. A good description of pro/cons can be found here: http://livedocs.adobe.com/livecycle/8.2/programLC/programmer/lcds/help.html?content=lccon fig_2.html#1073571
Similar Messages
-
How to use URL in actionscript Instead of services-config.xml?
Hi Alls,
I would like to set my service's url in actionScript (I don't
want to use compiler option -services witch need to recompile swf
if you change service's url).
I search for a long time on google but I found nothing, and
adobe documentation isn't very clear.
Thank for help!!!If you are relying on a services-config.xml file, then this
must be provided
at compile time because the compiler uses it to generate
code.
If you're not using <mx:DataService>, you can actually
avoid compiling against
a services-config.xml file. This is because for the other
services, such
as <mx:RemoteObject> or <mx:WebService
useProxy="true"> or <mx:HTTPService
useProxy="true">, the main thing the compiler does from
services-config.xml
is to generate the code to instantiate the set of channels
that should be
used to contact a destination in LCDS.
Well... you can do that programmatically in ActionScript...
something like
this:
import mx.messaging.ChannelSet;
import mx.messaging.channels.AMFChannel;
private function channelInit():void
var channelSet:ChannelSet = new ChannelSet();
var channel:AMFChannel = new AMFChannel(null, "
http://{server.name}:{server.port}/mycontext/messagebroker/amf");
channelSet.addChannel(channel);
myRemoteObject.channelSet = channelSet;
Just make sure you call this initialization code before you
make any service
requests. If you're proxied WebServices, be sure that you use
the ActionScript
API instead of the MXML tag so that you can delay when
loadWSDL() is called
because you'll want to setup the channelSet first.
Regards,
Pete
Hello FredFlex,
> Hi Alls,
>
> I would like to set my service's url in actionScript (I
don't want to
> use compiler option -services witch need to recompile
swf if you
> change service's url).
>
> I search for a long time on google but I found nothing,
and adobe
> documentation isn't very clear.
>
> Thank for help!!!
> -
Revision: 7177
Author: [email protected]
Date: 2009-05-21 07:56:59 -0700 (Thu, 21 May 2009)
Log Message:
Bug: BLZ-192 - Channel.requestTimeout cannot be set via services-config.xml
QA: Yes
Doc: Yes
Details: This is only the client side of the fix.
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-192
Modified Paths:
flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/messaging/Channel.asRevision: 7177
Author: [email protected]
Date: 2009-05-21 07:56:59 -0700 (Thu, 21 May 2009)
Log Message:
Bug: BLZ-192 - Channel.requestTimeout cannot be set via services-config.xml
QA: Yes
Doc: Yes
Details: This is only the client side of the fix.
Ticket Links:
http://bugs.adobe.com/jira/browse/BLZ-192
Modified Paths:
flex/sdk/branches/3.x/frameworks/projects/rpc/src/mx/messaging/Channel.as -
Services-config.xml with actionscript
I am amazed there is no half way simple method for creating a RTMP consumer without the need for this services-config.xml file. I have to be able to change, on the fly, what server the Flex client subscribes to and have multiple channels open to multiple servers. Maybe this is beyond the scope or capabilities of the RemoteObject, but we should be able create a consumer, channels, adapters and anything else we need without having to use the services-config.xml file.
So here is the actual problem, I have everything working with the exception of messages being returned from the server are never received. I can set up the channels and channelsets, the consumer, and can subscribe and get an ack message back saying it is connected, but no messages ever come back. And yes, we have confirmed the service is getting the subscription and is sending data back to the client if we use the services-config.xml methodology and watch server logs.
In our services-config.xml, I see
<adapters>
<adapter-definition id="messagingAdapter" class="FluorineFx.Messaging.Services.Messaging.MessagingAdapter" default="true"/>
</adapters>
Is there some way via actionscript to set up these adapters? Even if it means creating custom XML on the fly for the objects to parse thru, which I'm already doing in some places. Where are the adapters definable other than the services-config.xml?
Thanks.
Well the apadters have nothing to do with it as I can remove the mention from the xml and doing things via mxml still works and the AS3 stuff still doesn't work.
Message was edited by: SchmaltzyMannAh I see they've included it in a seperate file:
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<adapters>
<adapter-definition id="cf-object" class="coldfusion.flash.messaging.ColdFusionAdapter" default="true"/>
<adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter"/>
</adapters>
<default-channels>
<channel ref="my-cfamf"/>
</default-channels>
<destination id="ColdFusion">
<channels>
<channel ref="my-cfamf"/>
</channels>
<properties>
<source>*</source>
</properties>
</destination>
</service> -
Services-config.xml REALLY necessary?
Could somebody please clarify why we need the
"services-config.xml" file when running in the context of Flex
3/AMFPHP?
As near as I can tell, "services-config.xml" MIGHT be a
requirement for running with LiveCycle Data Services, but while I'm
admittedly new at all this, it seems to me to be completely
unnecessary or even detrimental when running with Flex 3 and
AMFPHP. Using the "services-config.xml" file requires that it
compiled into the project which pretty much makes it fixed at run
time. By expressing it programmatically at run time (using AS and
the appropriate property of the RemoteObject; "endpoint" I think it
is...), you open the possibility of being able to read the
appropriate URL from an INI file or something, very handy if you
are installing your SWF on different servers with potentially
different directory structures.
Could somebody please clarify this for me?
And would somebody PLEASE put up a good Flex 3, Flex Builder
3, AMFPHP set of tutorials/examples? Considering how important
accessing backend data is, you would think such examples would be
common as dirt, but they're not. All I can find are a bunch of Flex
2 examples, and the occasional Flex 3 example INSISTS on using
"services-config.xml".
Thanks in advance.Ah I see they've included it in a seperate file:
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<adapters>
<adapter-definition id="cf-object" class="coldfusion.flash.messaging.ColdFusionAdapter" default="true"/>
<adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter"/>
</adapters>
<default-channels>
<channel ref="my-cfamf"/>
</default-channels>
<destination id="ColdFusion">
<channels>
<channel ref="my-cfamf"/>
</channels>
<properties>
<source>*</source>
</properties>
</destination>
</service> -
Hard-coded endpoint port numbers in services-config.xml
Is it possible to remove hard-coded port numbers in
services-config.xml and replace them with variables? I'd like to
deploy the same Flex application War file (including
services-config.xml within it) to our Dev, UAT and then Production
environments, for which the endpoints and port numbers must vary.
Re-building the app for each environment isn't desirable.
Has anyone else achieved this?Maybe I can clarify what I mean. I'm assuming that basically
the same war file needs to be deployed twice to the same app
server, as in the original example, excluding changes to config
files (e.g. editing xml=ok, recompiling jars/swf=not ok).
The problem arises because if you were to change the config
file to use another port, it wouldn't make a difference to the
client app, which has the port and destination compiled in. You
would need to compile the app twice, once with the first port, once
with the second.
So my workaround is to compile (not deploy) with a config
file containing two sets of destination channels, then in your
deployed config files you remove one of the sets.
Assuming you want to deploy two instances of an app into a
single app server, there will 3 different configs, one used just to
compile, and one for each of the two deployed instances.
Config A (compilation config files, used only to compile the
flex application, not used during server start up) contains:
my-rtmp1, my-rtmp2, my-destination1, my-destination2.
Config B (server 1-debug) contains: my-rtmp1, my-destination1
Config C (server 2-release) contains: my-rtmp2,
my-destination2
So when you deploy two instances with Config B and Config C,
there is no port conflict. The Flex app then has some parameter set
in the wrapper (or the absence of said parameter could be the
indicator) to tell it whether to use my-rtmp1 or my-rtmp2.
I just tested this and it worked. The way I tested was to add
two buttons to a the Flex app, one which connects to
destination1and performs a fill, one which connections to
destination2 and performs the same operation. This Flex application
was compiled with config A.
I start a server with config B, and the application starts
fine, and the first button gets the fill as expected. The second
button instantly crashes the entire browser with an illegal memory
access exception. The second set of dest/channels aren't listening,
since the server doesn't know anything about them in it's config
file.
So on the bright side, that confirms to me that you can
compile an app with redundant channels and destinations, then
choose which destination/channel you want to use at runtime.
On the down side, being able to consistently cause a crash
like that usually isn't a good sign. I'll look again on Monday, and
raise a Flash bug if it's still present in the latest version. -
How this services-config.xml works?
I going through some gettingstarted examples of using flex with AMFPHP I got it working. But to be honest, I don’t understand this services-config.xml file
Given:
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<services>
<service id="remoting-service"
class="flex.messaging.services.RemotingService"
messageTypes="flex.messaging.messages.RemotingMessage">
<destination id="amfphp">
<channels>
<channel ref="my-amfphp"/>
</channels>
<properties>
<source>*</source>
</properties>
</destination>
</service>
</services>
<channels>
<channel-definition id="my-amfphp" class="mx.messaging.channels.AMFChannel">
<endpoint uri="http://localhost/amfphp/gateway.php"
class="flex.messaging.endpoints.AMFEndpoint"/>
</channel-definition>
</channels>
</services-config>
The only info from that file i use in my RemoteObject is this destination atttribut:
<mx:RemoteObject destination="amfphp" …/>
But what I don’t understand way they split the services-tag from channels-tag and most important how do they relate? Could somebody explain this or hint me to some easy to understand tutorial?
I tried to read adobe livedocs on Using RPC Components etc but it is so confusing, to be honest i don’t understand a word of it. what exacly is service-tag and channel-tag and whay i have to use both of them- i mean one will never switch my amfphp endpoint at runtime, will one? And way?
(ok, that destination has channel ref which reference the “other” channel-tag which points to my amfphp-gateway -but so what? what does it mean, way so commplicated - Wouldn’t it be easier if one would jut give the endpoint attribute to the RemoteObject and everything is fine?)
Thankful for any helpMaybe this will help?
http://www.sephiroth.it/tutorials/flashPHP/flex_remoteobject/page001.php -
FB3B2 services-config.xml stopped working
My App worked fine in FlexBuilder3 (Beta 1 I suppose –
yes, I'm sure it wasn't FlexBuilder2).
I upgraded to FB3B2 and I now get the compiler error:
Invalid endpoint port '' specified for channel definition
'my-amfphp'
I've attached my services-config.xml
if I take out -services "services-config.xml" from my
compiler options in flexbuilder my app compiles fine and runs
(though of course it can't retrieve data from the server).
What can I do to resolve this problem? I'm using Cairngorm
2.2.1 Beta and CairngormEnterprise 2.2.1 Beta (though I'm not sure
I really need that)Ok, this is not good at all...adding the port as I described
works great if you have the new Flash Player, but breaks the flash
remoting connection on Firefox if you have Flash Player 9.0.47.0!!!
This is not good since this is the shipping flash player and the
one that most of our customers are currently using!!!
To fix this problem for our customers I had to go back to
Flex Builder 3 Beta 1 so that I could build my product without the
port!
Is this just a "strict" compiler issue? If so, can you please
make this error go away? My app has been working without strictly
naming the port in the URL for a long time!
Thanks -
Do I need the 'java-polling-amf in my services-config.xml if I'm using coldfusion
Do I need the 'java-polling-amf in my services-config.xml if I'm using coldfusion?
Im using IntelliJ IDEA with a flex project and for some reason its stopping comilation with this error:
[SUITE (Flex Application 1)] flex.messaging.config.ConfigurationException: The services configuration includes a channel-definition 'java-polling-amf' that has an endpoint with a context.root token but a context root has not been defined. Please specify a context-root compiler argument.
when I was using flex builder with CF builder I never needed to specify the context.rootI don't use IDEA, so I don't know what kind of configuration settings it has for Flex project development.
You don't need the java-polling-amf channel for CF development. By default, CF development uses CF-specific channels:
my-cfamf
cf-polling-amf
my-cfamf-secure
any custom channels you've created yourself for CF to use
That said, all the channels require a context root setting for your project to compile properly. If you still have Flash Builder handy, take a look at your compiler switches for a project there to see what you're missing in IDEA.
Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/
http://training.figleaf.com/ -
Setting remote credentials in services-config.xml
Webservice and remoting calls can be restricted access to
CFC's using usernames and passwords. And to 'authenticate', I'm
having trouble setting the <remote-username> and
<remote-password> elements in the services-config.xml
A remoting fault event is dispatched because the tags
(<remote-username> & <remote-password>) "shouldn't"
be in the <properties> element in the destination definition.
I would rather protect that info on my server than compile it in
the swf inside a setRemoteCredentials call, so why isn't the
example from the docs working?Look at this thread
re:UIX/XML: XSS styleSheets
There is mention of a bug regarding the element to use - <style-sheet> instead of <style-sheet-name>. There might be some other stuff of interest in there as well.
Cheers
Ian -
Revision: 20873
Revision: 20873
Author: [email protected]
Date: 2011-03-16 06:35:10 -0700 (Wed, 16 Mar 2011)
Log Message:
Update description of class deserialization validators functionality in example services-config.xml for BlazeDS/trunk.
Checkintests: Not run. No code changes.
Modified Paths:
blazeds/trunk/resources/config/services-config.xmlThanks Carlo for your reply.
I have read again the link and you are correct that in using the preferred command together with localhost under POTS dial-peer, I can now select which correct path to choose for my outbound calls. I'm just not very strong with dial-peer and translation rules at the moment.
I will try this solution during the weekend and let you know. But it would have been better if there was a sample configuration for this option. -
WEB-INF/flex/services-config.xml???
I am confused about this file and it's location. In my
environment (MX
7.02/Apache/Linux) the WEB-INF/flex/ folder resides here:
/opt/coldfusionmx7/wwwroot/WEB-INF/flex/
However, the server is configured to serve web pages from
this location:
/apache/html/
my /CFIDE/ folder is located at /apache/html/CFIDE/ but I
have no WEB-INF
folder except in the default location that isn't served up by
the web
server. As I understand it, for flash remoting to work, I
must have the
WEB-INF/flex/ folder in the root of my web server or in the
working folder
of my flex project ON the web server? Is this correct? If so,
must I copy
the WEB-INF folder to my working web document root folder?
I'm very
confused and so far have had HORRIBLE luck trying to get the
most simple
examples to run between Flex and Coldfusion. I am hoping
someone can tell
me what I'm doing wrong or at least point me to some
documentation that
doesn't appear to assume you are running Coldfusion in
Developer mode from
your local workstation (which ALL the samples appear to do).
Thanks for any help, I configured the coldfusion servers here
so I can make
the needed changes, if I only knew what they were and the
documentation
hasn't helped me much.
...BradRun the wizard, select ColdFusion as the server technology, but don't
check the option to use remote object access service. Then, open the
project properties dialog, go to the Flex Compiler page, and add a the
compiler flag: -services
"C:\ColdFusion8\wwwroot\WEB-INF\flex\services-config.xml" (obviously
changing the path as appropriate). This flag is what gets set by the
wizard when you opt to use Flash Remoting. -http://www.feed-squirrel.com/index.cfm?evt=viewItem&ID=77732
Above is a work-around/solution that was successful for me. Below are screen shots of how I initially configured the project, following the above solution.
In the image above, notice how I didn't tick the "Use remote object access service" checkbox.
For the image below, the 'Y:\' value is a mapped network directory to my server (IIS) webroot, which is "\\windowsserver/Inetpub/wwwroot/". Root URL is the name of my server. Fill in the fields with correct values and hit finish.
Then navigate ( Project>Properties>Flex Compiler ) to this project's 'Flex Compiler context menu.
And 'W:\' is another mapped network directory that points obviously to my Coldfusion's WEB-INF\flex.
I hope that this helps. As you may see, I'm hoping that this will help you and others that are likely to come across problem. -
Clarification on services-config.xml files for RemoteObject services
I am currently preparing an AMFPHP environment for exchanging
data with Flex and AIR applications. I can connect to the services
via Netconnection, but using RemoteObject won't work.
Documentation for the necessary configuration files
(services-config.xml, remoting-config.xml and the like) is, um,
sparse and seems to be slightly incorrect or misleading at times.
So I'm looking for clarification about
changes in the syntax of services-config.xml · in
examples for Flex 2.01, there are "class" attributes with values
beginning with "flex.", in Flex 3 examples the attribute name has
changed to "type", values beginning with "flex." have mostly
vanished and been replaced with similar looking values beginning
with "mx.". Are "flex." and "mx." prefixes interchangable?
correct syntax for linking other files into
services-config.xml · the livedocs state that Adobe
prefers linking files into services-config.xml (using something
like <service-include file-path="remoting-config.xml"/>)
instead of defining all service parameters there. But in the
example from the Flex 2.01 livedocs, the root element of the
service-config.xml file is <services> instead of
<services-config>. Assuming that <services> is meant as
a
child of the <services-config> root element, there
seems to be a mandatory <service> child element missing.
That's either intended, illogical, and misleading, or simply
erroneous.
which classes are still valid in Flex 3, which have changed?
· Most of the examples for using RemoteObjects out there are
for FlexBuilder 2 (e.g.
here)
and don't seem to work with FlexBuilder 3 Beta 2. But there is no
statement to be found in the Flex 3 documentation about what has
changed.
a meaningful example for services-config.xml · In the
Flex 3 Beta 2 documentation here are plenty of references to using
services-config.xml, as I can find even information about the
ServerConfig class in the ActionScript 3 Language Reference, a sort
of wrapper class for the information provided in
service-config.xml, but there is no information about what
constitutes a
working service-config.xml configuration (which XML tags of
what names containing what attributes need to be present).
As I'd really like to create cutting-edge Flex and AIR OCC
applications, I'm eager to have those ambiguities clarified.
Best regards,
CathnessFrom the docs it looks like this is used for web services as
well:
http://livedocs.adobe.com/flex/201/html/dataservices_config_100_3.html#260186
If this isn't the right config file, which file should I be
looking at?
Mike -
How to set services-config.xml?
Hi,
Hi,
I am confusing for how to set services-config.xml(configuring
channels and destinations) for <mx:RemoteObject>.
Please give me a simple demo .Thanks
MKMaybe this will help?
http://www.sephiroth.it/tutorials/flashPHP/flex_remoteobject/page001.php -
No services-config.xml file
What is the process that installs this file on my server? I
dont have this file in my web directoryare you running flex data services, or just using the Flex
SDK? If you are just using the SDK (or Flex Builder) than you don't
need to have the file on your server. It just needs to be available
during compile-time.
If you are using ColdFusion keep reading...
I included a ColdFusion services-config.xml file below. You
would just need to replace [INSERT YOUR URL] with your actual CF
server URL. You could copy this file locally to your MXML
components and include the path in the compiler options using the
-services "c:\fullpath\to\services-config.xml"
compiler switch.
**** SERVICES-CONFIG.XML *****
<?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>false</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://[INSERT YOUR URL]/flex2gateway/"
class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>false</polling-enabled>
<serialization>
<instantiate-types>false</instantiate-types>
</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>
Maybe you are looking for
-
Using OFFLINE_INSTANTIATION with a spatial object - SDO_GEOMETRY type
Hello I am looking for guidance on the usage of DBMS_REPCAT_RGT.INSTANTIATE_OFFLINE for a table object with an SDO_GEOMETRY column defined. The table is: SQL> descr jtx.jtx_jobs_aoi Name Null? Type OBJECTID NOT NULL NUMBER(38) JOB_ID NUMBER(10) SHAPE
-
Resize Jtable in panel (using setPreferredScrollableViewportSize)
Hi, I have a JPanel which I've added a JTable. I have set it up with table.setPreferredScrollableViewportSize(new Dimension(900,450)); On the click of a button I want to call table.setPreferredScrollableViewportSize(new
-
Unable to login to ISE 1.2 via Cli
Hi, I have a weird problem; after changing the default admin password on cli and rebooting the unit; i am no longer able to login via cli. Instead I get the following message: % Error: Unable to launch ADE-OS shell. Disk full. The ISE is running 1.2
-
Cisco ISE 802.1X Client Provisioning
Hi, I have a requirement for ISE client provisioning for both Windows and mac. I have the following setup: 1. 2 SSIDs, Guest and Employee 2. Guest is open access 3. Employee is 802.1x eap-peap (username/password) I was wondering if client local admin
-
Hi I'm trying to import an Z-idoc to the XI integration repository, but the import fails with the following message: Import failed with 1 error com.sap.aii.ibrep.sbeans.upload.RemoteUploadException: The objects as displayed in the navigation tree are