Flex :: Intercept Service Method Calls Using Metaprogramming In Groovy/grails?
Feb 11, 2010
I have a several Grails services that are invoked from Flex code using Spring BlazeDS integration. I wanted to add some general debug logging using the groovy metaClass. I have the following in a bootstrap class:
Using the web services panel, I've connected to a web service, but all the method calls will only show the param structures/types - not the result structures/types. To the best of my knowledge, I'm sending the right parameters, in the right structure, but always I get an empty response.The web services panel:
Debugger results (with breakpoint placed just after a response is received):
I have a grails application that will be rendering an html page into a pdf file and I have a flex application sitting on a server that is going to accept REST parameters and construct a graph based on the parameters (which will be formatted in JSON). What I want to do is make a call to the flex app with my parameters and have the flex app create the graph, render a JPEG of the graph, then send an image back to grails. In other words, I want to put an HTML img src=that will render the image directly to the page so that my PDF Plugin in grails will render it into the PDF.
Web service calls are asynchronous in flex, but I wanted to wrap a web service call in a class to provide synchronous encapsulation. Something like the below - the user could call getMyMethodResult and get the result returned by the web service. I expected the thread that recieved the soap response would populate the variable _result and mean that getMyMethod would, after a time, find _result is not longer null. But it doesn't! Can anyone explain why this does not work?[code]
I have a web service written in ColdFusion. In this web service, there are two functions; one is to return all the questions in a quiz and the other one is to return all the answer selections to the questions in a quiz.
[Bindable] private var questionArray:ArrayCollection; private var cfquiz:RemoteObject;
[code]....
I have the codes above. loadQuestions is called at creationComplete to retrieve the questions. Things are working fine. What I want to do is to call another function within the same web service, returnAnswers, to return the answer options for a question. Since I have cfquiz associated to the web service already, I was using cfquiz to call returnAnswers. However, there is an event listener associated to cfquiz already, resultHandler is being called when returnAnswers comes back with the results.is it possible to check which function returns the results within resultHandler? If so, how? And second, what is the best way to handle calls to multiple functions within the same web service?
I have a flex app hosted on a windows server running IIS. That same server has some rest services that the app interacts with. The rest services have windows authentication so that their urls cannot be called without credentials. The flex app needs to be accessible to the public so its files are accessed by enabling anonymous access. The problem is of course that when the app tries to call the rest services the browser pops a dialog box asking for windows username and pass. I naively hoped that if I set the anonymous access on the flex site to use the credentials of a windows account that had permission to view the rest services that would resolve the matter. I hoped that IIS would see the browser used the proper creds to view the flex app and use those same creds to get the rest services. Wrong, that didn't work.
So is what I want impossible? I'd like to find a way to not force the user to enter windows creds, keep the rest services using windows authentication, and have the flex app able to access the rest urls. Any ideas? Am I missing something? Also, it may turn out that the flex app is running on http and the rest services must be called with https. Does that change your answer?
OK, from what I know actionscript in Flex runs asynchronously. I need the ability to run a method in a loop synchronously. Consider this code:
public class CustomerContainer extends VBox { public function CustomerContainer () {
[Code]....
This is not my exact situation as it is a bit more complicated to explain here. There is an abstract class and several custom view objects derived from it. Some of the views are dependent on others being completed first but I cannot seem to order them in the correct order. TIMERS are not an option. Probably not explaining this correctly.
Has anyone used or is aware of a service browser to test AMF calls?I am looking for a tool similar to ZamfBrowser ( http:[url].... ), but one that works for the Java environment.ZamfBrowser is geared towards AMFPHP.The idea here is to provide a service browser, that allows developers to test Java services using the AMF protocol, without having to go through the Flex UI all the time. There has got to be something out there already for this, but I can't seem to locate anything..... It's kind of funny and strange that a service browser exists for AMFPHP but not for regular AMF calls in a Java environment.
I would imagine something exists under Blaze or LCDS? ...Trying to find it in the docs but can't seem to find anything ....The best alternative I can think of at the moment is to use FlexMonkey to record stuff, and then to simulate it using that....which is okay I guess but still sucks because you have to go in and create the Flex UI first, whereas with something like ZamfBrowser, you simply point it at the service calls,it tells the server-side developers if their code works, etc. generates the required as3 classes for you... and makes the integration process much easier in a large team.
where should I put the crossdomain.xml to my grails app? I need to use webservices from external domains in my flex client app. I put it into my web-app folder but it seems not working..
I have a large xml passed from grails to flex. When flex receives the xml, it converts the xml into an associative array object. Given the large xml file, it takes too long to complete the loop, is there any way in flex to make conversion faster? Below is my sample code.
I have an alchemy compiled swc which contains methods to perform certain key algorithms. These methods should only return values only if user is authorized(bought license from online service) for security purpose. So I am planning to add another SWC on top of this, which have all the licensing code stuff. But when I import the Alchemy generated swc inside my custom swc, all the methods of alchemy are exposed.
this seems really simple but I haven't gotten this to work. I am building my app with grails on google app engine. This pretty much requires you to use JDO. I am making an HTTP call from flex to my app. The action that I am calling on the grails end looks like so
[Code]...
I have tried just returning "hello from grails" and that works just fine. I have alos tried the following return showInstanceList the JDO docs say the query.execute() returns a collection. Why I cant just return that to Flex I have no clue. after playing around with this some more I was able to get a result event back by have grails convert the object to JSON or XML wish I could just return a damn ArrayList.
I'm writing an application, Flex front-end & Grails back-end, in which I need to integrate security. All the information around Grails gives me the impression to be well suited for when your client is written in HTML but how can I use Flex's HTTPService to integrate into it?
I trying to integrate Flex with Grails through BlazeDS but I am stuck with the very first step i.e installing BlazeDS plugin ... it fails everytime i try to install. Following is the complete stacktrace
Resolving plugin JAR dependencies ... Warning module not found: com.adobe.flex#flex-messaging-opt;4.0.0.14931.1 grailsHome: tried D:PlatformsGrailsgrails-1.3.7lib/flex-messaging-opt-4.0.0.14931.1.xml [Code] .....
I am experiencing a strange problem when I want to bind a service to a button or something else:
[Code]...
I can add the services to the Data Services panel but I have two strange things:
1) when I want to configure the return type he doesn't let me create a new ValueObject type, I only get the bottom datagrid which states: Properties returned by the operation: Property: country_Id, provence_Id, city_Id, id_cdpc, district_Id with the related values on the right side. Why can't I create a new data type on the top?
2) When I accept this and want to add the service call to a button (drag&drop) I get the following error: Error occurred while generating code. Make sure that there are no compiler eroors and try again after reopening the file. Componentn type services.cdpc.CDPC not found... (ps: When I perform a Test Operation everything seems to be ok, I get the expected output values)
I am having some trouble with my flash application not calling a web service when displaying through a web server.
When I open the html page that embeds the flash file in my browser directly from the hard drive i.e the absolute path to the file. The flash file loads up calls the web service and displays the value returned from the web service.
However, when I open the html page through the web server i.e through localhost the flash file also loads up, but it breaks when calling the web service...it is as if the web method isn't being called.
Is this a problem with flash or maybe the web server configuration? I have changed my flash global security settings and everything to include my testing folder.
I'm trying to intercept the value that is taken from a DataGrid's GridColumn's itemRenderer and applied to the itemEditor, and vice-versa. I need to be able to format this value. However, my project is complex, so I may be focusing on the wrong idea in what I'm trying to accomplish.
I have a Spark DataGrid component (with ID dg) that I am dynamically populating from XML. I create an ArrayCollection from some nodes, and a regular Array from sub-nodes that is added as a property of the ArrayCollection. That ArrayCollection is then used as the dataProvider for the DataGrid.
Here is an example segment of a typical XML node and it's sub-nodes:
This is the only method I've been able to use to achieve the desired result. This all works fine, if all I want to do is merely display information. But I need to be able to edit the values in each cell, and apply this back to the dataProvider, as I need to rebuild XML with the updated values later.
I have tried everything I can possibly think of to be able to do this. I built my own itemRenderer, then my own itemEditor, then scrapped them because it felt like I was re-inventing the wheel. But was I? I tried reading through the code for the DataGrid, GridColumn, and related classes, but I couldn't find any reference to the itemEditor beyond it being an IFactory. I have no idea where or how it tells that IFactory to be a text input or whatever it is.
Here is my issue:
When I turn on the DataGrid's editing, and double-click a cell, it takes the entire array of the col dataField for that column's cell, converts that array to a string, and displays the entire string in the edit text box. If I cancel the editing, or save the editing, it sets the string to the .col property. Then the labelFunction tries reading that string as an array, and it crashes. I was able to get the typeof the col dataField and converting it to an array if it's a string, but I shouldn't have to.
I need to have it display just the value of the cell for that particular row and column when the instance of the itemEditor is created. When that value is changed, I need it to apply back to that column's index in the .col array of the dataProvider. So, similarly to how it displays information in the labelFunction, I need to edit the information and send it back.
I've seen lots of custom itemEditors and itemRenderers for GridColumns, but these are hard-coded in the MXML. My grid is almost entirely dynamically created, so that's unfortunately not an option for me, as I won't even know how many columns or rows there will be when the DataGrid is created. I tried using rendererIsEditor, but that only seems to be on the MXML instantiation of the GridColumn, as there's only rendererIsEditable in the ActionScript, and it doesn't seem to work (or I don't know how to use it as intended).
URL...As written in its description "It's not sure if the plugin works in production mode"Plus Tomas Lin Lesson 2 in his blog post URL...So, I've decided to look further and found URL... which is also based on nightly builds that was never released.Digging a little more I found the following correspondence:URL...Where it seems that Grails and Flex 3 are old buddies and the only question is whether Flex 4 integration worth the effort.So now I'm confused, can't figure out what is the current status, and how should I integrate a Flex client component with Grails server:Preferably Using flash builder 3 (no 4 for Linux yet)Performance is crucial, so I guess AMF (blazeDS) would be better than REST or WS
I have a partially populated Tree component and I have to invoke a remote service when User expand (not when he select) a node to retrieve it's leafs. How I know witch node have bee selected.
I followed the tutorial on isometric transformations [URL], which I had no issue understanding. However, I thought I would explore putting that tutorial into multiple files / external classes as a bit of an exercise. Now I am just getting an error stating that "Calls to a possibly undefined method drawIsoRefBars". I've messed about for 2 days now, but just can't seem to nail the problem. where I'm going wrong in the following code? The intention is to create a drawingBoard sprite to plot/draw iso reference lines onto.
I have a component called a TableDataViewer that contains the following pieces of data and their associated set functions:[code]This component is nested in another component as follows:[code]Looking at the trace in the logs, the call to set table is coming before the call to set dataSetLoader. Which is a real shame because set table() needs dataSetLoader to already be set in order to call its load() function.So my question is, is there a way to enforce an order on the calls to the set functions when declaring a component?
How can i settings crossdomain.xml my flex project.* this is my crossdomain.xml.
<?xml version="1.0"?> <!DOCTYPE cross-domain-policy SYSTEM "/xml/dtds/cross-domain-policy.dtd"> <cross-domain-policy> <site-control permitted-cross-domain-policies="all"/>
[code].....
I've tried lots of different methods but my project send error message "Security error accessing url Unable to load WSDL. If currently online, please verify the URI and/or format of the WSDL [URL]"
I am trying to access a .Net service which requires an authentication header. If WebService is used it works fine. But when it is accessed using HTTPService it throws error. The project is already done by somebody else using HTTPService. Now changing to webService requires some time since there needs to be modification in a lot of files.
Below is the SOAP envelop required by the service.
I am using Flex and with the AS3 libraries.I can make calls etc but when i get values returned in the event,they are in RawResult. I am not sure how to turn that into an arraycollection etc so i can make use of it in flex, or if there is a better way of accessing the data, generally speaking.
var friendsDoc : XMLDocument = new XMLDocument(e.data.rawResult); var decoder:SimpleXMLDecoder = new SimpleXMLDecoder(true);[code]....