Swiz Flex 4 Remote Object and AMF

Hi flex gurus,
Somebody please help me walk through this. Just today I decided to convert my existing flex code to Swiz framework. I have just this one question for the moment, what is the correct way of calling remote object down to Swiz? Please show me some example how to do it. I was thinking to use delegate class after I figure out this one.
Many thanks in advance.

The following page describes the scope attribute (and examples of where it should be used) for a destination:
http://help.adobe.com/en_US/LiveCycleDataServicesES/3.1/Developing/WS3a1a89e415cd1e5d-d524 5eb1221394e36f-8000Update.html
Starting BlazeDS 4.0 release, there is a single developer guide for BlazeDS and LCDS. Content that only applies to LCDS is indicated in the guide. Developer Guide: Using LiveCycle Data Services 3.1
Rohit

Similar Messages

  • Amfphp - flex remote object error event handler

    I'm using amfphp and I want it to return an error that the flex remote object error event handler will pick up. At the moment I can get only the result handler to do anything in flex.

    Hi,
    Try throwing an exception in the remote method. For example,
    function inverse($x) {
        if (!$x) {
            throw new Exception('Division by zero.');
        else return 1/$x;

  • Iphone apps using flex remote objects with CF???

    I am used to making web applications that use flex remote objects to interact with CF.
    Is it possible to use remoting from an iphone app cross compiled using flash builder to interact with Cf remoting on a remote server?

    Interseting, config files always seem to me like a strange way to do things.
    I'm not exactly sure what you mean by this, but by default, that's how remoting works in Flex - you have channels and destinations defined on your server, and your compiler points to your config files and reads those values. So it's a little extra work to define them in AS instead.
    Can you give me any tips on authenticating requests to cfc's from mobiles and how to protect my servers once I exposes cfc's to apps not hosted on the same server as CF?
    There isn't really anything mobile-specific you need to do here. Exposing CFCs isn't any different than exposing CFM files that are accessed via a browser. You can use the standard CF session management and CF authentication (cflogin) - there are some examples available by Googling "coldfusion cflogin flex remoting".
    Dave Watts, CTO, Fig Leaf Software

  • Creating remote objects and passing the retrieved data to modules

    I found at this Adobe tutorial a nice "RemoteService" class that  creates a RemoteObject and contains the functions for handling the  result and fault events. If I wanted to use this approach, how could I  pass the data from the result handler to interfaces that modules from  the main application could use?
    I could put the RemoteService/RemoteObject in the modules, but (in my  opinion- and I could be wrong) the best design seems to be using the  remote calls in the main app and passing the data along to the modules.
    Ultimately, I would like to know what the "best practices" are for creating remote objects and passing the retrieved data to modules
    Thanks!

    public void mouseClicked(MouseEvent e) {
      X x = new X(e.getX(), e.getY());
    }I don't see the difficulty.

  • Remote object trying to return another remote object and a ClassCastExcepti

    I have a server running with a TreeModel (the tree model implements Remote). I also have the the TreeNodes all linked together on the server. Now, I can get to the TreeModel on the server and the root node of the remote tree model.
    treeModelStub = (treeModelIface)Naming.lookup(url+"remoteTM"); //works
    rootStub = (remoteTreeNodeIface)treeModelStub.getRoot(); //works. The call to getRoot returns Object
    But when I call
    remoteTreeNodeIface aChild = (remoteTreeNodeIface)rootStub.getChildAt(index) //Does not work. "Exception in thread "main" java.lang.ClassCastException
    at remoteTreeNode_Stub.getChildAt(Unknown Source)
    The remote tree node method getChildAt returns TreeNode because the class implements TreeNode:
    public class remoteTreeNode extends UnicastRemoteObject implements rdcaDataIface, Comparable, TreeNode {
    public TreeNode getChildAt(int idx) {
    System.out.println("DEBUG: class is "+this.getClass()); // class is remoteTreeNode
    return (remoteTreeNode)children.get(idx);
    The remote interface is defined as:
    public interface rdcaDataIface extends java.rmi.Remote {
    public TreeNode getChildAt(int idx) throws RemoteException;
    Any ideas why this does not work. Why can a remote object of type Object be returned just fine, but a TreeNode not be returned?
    Thank you for your help,
    Brent

    I have a server running with a TreeModel (the tree
    model implements Remote). I also have the the
    TreeNodes all linked together on the server. Now, I
    can get to the TreeModel on the server and the root
    node of the remote tree model.
    treeModelStub =
    (treeModelIface)Naming.lookup(url+"remoteTM");
    //works
    rootStub =
    (remoteTreeNodeIface)treeModelStub.getRoot();
    //works. The call to getRoot returns Object
    But when I call
    remoteTreeNodeIface aChild =
    (remoteTreeNodeIface)rootStub.getChildAt(index)******************************************
    can only be casted to rdcaDataIface. The returned object is an instanceof the rdcaDataIface_stub, which have nothing to do with TreeNode.
    //Does not work. "Exception in thread "main"
    java.lang.ClassCastException
    at remoteTreeNode_Stub.getChildAt(Unknown
    t(Unknown Source)
    The remote tree node method getChildAt returns
    TreeNode because the class implements TreeNode:
    public class remoteTreeNode extends
    UnicastRemoteObject implements rdcaDataIface,
    Comparable, TreeNode {
    public TreeNode getChildAt(int idx) {
    System.out.println("DEBUG: class is
    lass is "+this.getClass()); // class is
    remoteTreeNode
    return (remoteTreeNode)children.get(idx);
    The remote interface is defined as:
    public interface rdcaDataIface extends java.rmi.Remote
    public TreeNode getChildAt(int idx) throws
    ows RemoteException;
    Any ideas why this does not work. Why can a remote
    object of type Object be returned just fine, but a
    TreeNode not be returned?
    Thank you for your help,
    Brent

  • SSL Flex Remote Object - no remoting-config file

    I realize that this topic has been discussed a lot, and I think
    I have the solution figured out.
    The problem is that I have to edit the remoting-config file - and there isn't one!
    I've hunted high and low on the server, and I just don't have the file.
    We are using Coldfusion                                      8,0,0,176276   Enterprise, and I have an instance for my flex applicaitons (we have multiple instances running, and none of them have the file).  The server is running on a Solaris VM.
    How do I fix this problem??
    Thanks!
    Jenn

    My context root is specified as the default "/" When I remove the context root variable from the services-config.xml, it can't find the file. I don't know where I can change context root, but I am confused as to what it should be, regardless.
    Add the -context-root to the compiler options, just like -services and set it to an empty string
    -services="/Applications/JRun4/servers/cfusion/cfusion-ear/cfusion-war/WEB-INF/f lex/servics-config.xml" -context-root=""

  • Rmi and reference to remote object

    how I can obtain a reference to a remote object and not its value?

    This will happen automatically once it is exported and you return it from the server via an RMI call, e.g. Naming.lookup() or as the result of another remote method.

  • RMI and Threads: Calling wait() on a remote object

    I created a counter as a remote object.
    Multiple clients are displaying the counter value.
    If one of the clients increments the counter, I want the displayed counter value on every client to be updated to the new value (of the counter on the server).
    Therefore every client starts a new thread to "listen" for changes of the countervalue. I wanted to call the wait() method on the remote object (the remote counter). But i think it will be called on the stub instead of on the actual remote object.
    Therefore i created a extra method waitForChange() on the remote object.
    public void waitForChange() throws RemoteException, InterruptedException {
         synchronized(this) {
              wait();
    This method only calls the wait() method. Now I'm sure it's called on the remote object and not on the stub.
    This works, but my question is: is there a better way to do this?
    Code:
    ==========================================
    The remote interface
    ==========================================
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    public interface RemoteCounter extends Remote {
         void incrementCounter() throws RemoteException;
         int getCounterValue() throws RemoteException;
         void waitForChange() throws RemoteException, InterruptedException;
    } ==========================================
    The implementation of the remote interface
    ==========================================
    import java.rmi.*;
    import java.rmi.activation.*;
    import RemoteCounter;
    public class RemoteCounterImpl extends Activatable
         implements RemoteCounter {
         private static final long serialVersionUID = 1L;
         private int counter = 0;
         protected RemoteCounterImpl(ActivationID id, MarshalledObject data) throws RemoteException {
              super(id, 0);
         public void incrementCounter() throws RemoteException {
              synchronized(this) {
                   counter++;
                   notifyAll(); //Inform all clients of the new countervalue;
         public void waitForChange() throws RemoteException, InterruptedException {
              synchronized(this) {
                   wait();
         public int getCounterValue() throws RemoteException {
              return counter;
    }==========================================
    A piece of code registering the remote object
    ==========================================
    ActivationDesc desc = new ActivationDesc(agi, "RemoteCounterImpl", codebase, data);
    //Register with rmid
    RemoteCounter counter = (RemoteCounter)Activatable.register(desc);
    // Bind the stub to a name in the registry running on 1099
    Naming.bind("Counter", counter);==========================================
    The panel containing a button, a label
    which starts a new thread listening for
    counter value changes
    ==========================================
    import javax.swing.*;
    import java.awt.Dimension;
    import java.awt.event.*;
    import java.rmi.*;
    import org.personal.exam.services.RemoteCounter;
    public class PanelCounter extends JPanel {
         private static final long serialVersionUID = 1L;
         JLabel labelX = new JLabel("Press testbutton");
         Thread t;
         RemoteCounter remoteCounter;
         public PanelCounter()     {
              try {
                   jbInit();
              } catch(Exception e) {
                   e.printStackTrace();
         private void jbInit() throws Exception
              this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
              this.setPreferredSize(new Dimension(450,300));
              // The securityManager is required to make is possible
              // to download classes from the server
              if (System.getSecurityManager() == null) {
                   System.setSecurityManager(new RMISecurityManager());
              //Create a testButton to increment the counter          
              JButton testButton = new JButton("Increment");
              testButton.addActionListener(new ActionListener(){
                   public void actionPerformed(ActionEvent arg0) {
                        incrementCounter();
              this.add(testButton);
              //Add a label to display the counter value
              this.add(labelX);
              // Create thread to listen for counter value changes
              try {
                   remoteCounter = (RemoteCounter)Naming.lookup("Counter");
                   CounterValueChecker cvl = new CounterValueChecker(labelX, remoteCounter);
                   //Start a thread to listen for changes of the countervalue
                 t = new Thread(cvl);
                 t.start();
              } catch(Exception e) {
                   e.printStackTrace();
              this.setVisible(true);
         private void incrementCounter() {
              String message = "error";
              try {
                   remoteCounter.incrementCounter();
                   message = "Current value is " + remoteCounter.getCounterValue();
              } catch(Exception e) {
                   System.out.println("Test Exception: " + e.getMessage());
                   e.printStackTrace();
              labelX.setText(message);
    }==========================================
    The runnable implementation used by the
    thread to wait for counterchanges
    ==========================================
    import java.rmi.RemoteException;
    import javax.swing.JLabel;
    import org.apache.log4j.Logger;
    import RemoteCounter;
    public class CounterValueChecker implements Runnable {
         private JLabel counterLabel;
         private RemoteCounter remoteCounter;
         public boolean keepChecking= true;
         private Logger logger = Logger.getLogger(this.getClass());
         public CounterValueChecker(JLabel counterLabel, RemoteCounter remoteCounter){
              this.counterLabel = counterLabel;
              this.remoteCounter = remoteCounter;
         public void run() {
              while(keepChecking) {
                   int newVal = -1;
                   synchronized(remoteCounter) {
                        try {
                             //remoteCounter.wait();
    //this does not work. I think because the wait() method is called on the
    //stub instead of on the actual remote object
                             remoteCounter.waitForChange();
                        } catch (InterruptedException e) {
                             keepChecking = false;
                             break;
                        } catch (RemoteException re) {
                             re.printStackTrace();
                        try {
                             newVal = remoteCounter.getCounterValue();
                        } catch (RemoteException re) {
                             re.printStackTrace();
                        counterLabel.setText("New value: " + newVal);
    }This is just a little test. Actually I want to notify clients of changes in data displayed in a Table. If one client saves one record of the data, i want the new record to be displayed immediatly on all clients that are viewing the same data.

    I've been doing some reading about RMI and callback.
    As I understand it, there's a remote object is running on the client now as wel. And the server makes a call to the client.
    But now the server makes a call to one client.
    And the point is, I want all clients to be updated with the new value.
    Does this mean, I have to keep a list with references to all clients connected to the server?
    I my code the notifyAll() method causes all waiting Threads (running on several clients) to wake up and do something (getting the new counter value).

  • Can't load all properties of a remote object

    Hi,
    I have a java class called
    Employe which has a field of type
    Group(an java class)
    when i get the Employe Object in flex using remote Object and
    try to access Group's properties like
    employe.goup.name, i get:
    "Error #1009: Cannot access a property or method of a null
    object reference".
    Can some one please help me! Thank you.

    Please check your Node Object, I mean all Objects that you are going to save is serialized or not.

  • HOW TO PASS NON REMOTE OBJECT PARAMETER

    good day,
    hi im new to java and rmi, and i need help pls, my question is how can i pass a non-remote object/local object as a parameter to a remote method. can u pls give a code for the:
    1. client that will invoke the remote method and pass the object in remote objects method.
    2. object that will be passed to the server/remote object( a serilizable object of course).
    3. the remote object and the method that will receive the object parameter.
    thank you very much for your kindness,
    p.s.
    you can email me to [email protected]
    batusai,

    When you create the object locally, and pass it to the server, at that point it exists on both systems/in both jvms.
    Why don't you write your own example, and try it. If you get in trouble, post the code, and we will help you.

  • Daisy-chaining remote object calls

    If you want to get data from a series of CFCs using remote
    object, and each call depends on data received from the previous
    call, you have to daisy-chain the functions making the calls,
    otherwise there is no way to guarantee that the data is available
    in time (in practice it is never available in time) because the
    main thread races on regardless.
    Now if you want to refresh parts of the data, or you want to
    get a different set of data from one or more of the same CFCs, you
    either can use the same functions and set up a different set of
    daisy-chains with multiple boolean tests to see which chain of
    links should be being followed ( and this ends up something akin to
    a four-dimensional Hampton Court maze), or you have to duplicate
    the remote calls over and over again in different sets of functions
    and resultHandlers. Either way you end up with a horrible mess.
    Is there any way to write a class that can suspend the main
    thread, pending a remote call listener sending a resume main thread
    event.
    The other way that would work (though this would not be as
    good) is to change addEventListener, so that you can pass arguments
    into the resultHandler.
    Does anyone have any ideas that could lead to a solution to
    this problem? It's giving me gray hair.
    Doug

    "suspend the main thread, pending a remote call.." No. Can't
    be done.
    ..."pass arguments into the resultHandler..." Yes, this is
    done using the AsyncToken. (ACT pattern)
    The send() methods returns an AsyncToken object. You can use
    this dynamic object to add almost anything you want to the token,
    including strings, and functions (google the term "closure").
    As I am still not comfortable with anonymous functions, I
    like to pass strings. I pass an identifier, which I can use in a
    switch statement to determine the next step. Sometimes I pass a
    "nextStep" string to define finer grain conditionality.
    I use a single dataService object and result handler function
    for all calls.
    Tracy

  • Logical model cannot refer to 'remote objects'?

    Hi
    Using DM 3.3.0.747.
    In the relational model one can drag and drop in a table from another relational model from a separate design.  This shows that table as a linked table and can be refreshed via the 'Synchronize Remote Objects' and allows that table to be referenced from your 'local' tables (i.e. used in foreign keys).
    I tried the same, but for a logical model entity.  This does not work/is not allowed?  What is the expected behaviour?
    We would like to use this for logical models as well.  (So that we may develop/document the logical models separate, but use common/shared entities in the same way possible in relational models.  This will help us a lot in keeping the models smaller and easier to manage and version control.)
    Thank you & Regards

    Hi Ed,
    I presume you had some relationships in the Logical Model that you were expecting to be engineered to Foreign Key relationships in the Relational Model.
    Please can you provide more detail to help resolve your problem. For example:
    Was the problem on an initial engineer from the logical model? Or on a re-engineer?
    Are you using Entity subtyping in your Logical Model?
    Are there any relevant error messages in the log file? (This is normally file datamodeler.log in folder datamodeler\datamodeler\log.)
    David

  • Premature Garbage Collection of Remote Objects

    I have a problem with distributed garbage collection and RMI. In CSPoker we try to support RMI for client-server communication. The client looks up the server through the registry, calls the login method and receives back a Remote Object reference called ServerContext. The client can register Remote even listener Objects with the server.
    In both directions we occasionally see:
    java.rmi.NoSuchObjectException: no such object in table
    The behaviour is completely unpredictable. Some developers never see it, others see it all the time. Even on the same machine, sometimes it failes immediately
    and sometimes it fails after a while. One person running the Sun JRE 6 on Windows has this poblem most frequently.
    Can this be a bug or do we misinterpret something? The way we see it, as long as the client leases the Remote Object it shouldn't be GCed. All tests are run on localhost so no network partition can occur.
    The problem would probably be solved if we hold static references to all Remote Objects in the local JVM. This is not an option because we want the Objects to be GCed once the lease expires.
    Here are 2 debugging outputs of server runs with RMI logging enabled:
    http://cspoker.pastebin.com/f27a7d6fc
    As you can see, the lease requests are coming through but a NoSuchObjectException is thrown and the Object is finalized.
    http://cspoker.pastebin.com/f732797d2

    Thanks for the quick reply.
    For instance:
    11:56:02,427 DEBUG (org.cspoker.common.api.shared.context.ForwardingRemoteServerContext.java:72) [finalize] - Garbage collecting old context: org.cspoker.server.rmi.export.ExportingServerContext@15a8767
    07.11.2008 11:56:02 sun.rmi.server.UnicastServerRef logCall
    FEINER: RMI TCP Connection(2)-10.0.4.106: [10.0.4.106: sun.rmi.transport.DGCImpl[0:0:0, 2]: java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)]
    07.11.2008 11:56:03 sun.rmi.transport.Transport serviceCall
    FEIN: RMI TCP Connection(2)-10.0.4.106: [10.0.4.106] exception:
    java.rmi.NoSuchObjectException: no such object in table
            at sun.rmi.transport.Transport.serviceCall(Transport.java:129)
            at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
            at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
            at java.lang.Thread.run(Thread.java:595)The context Object is exported and returned to the client here :
    return (ExternalRemoteServerContext) UnicastRemoteObject.exportObject(context, 0);Then [the object|http://code.google.com/p/cspoker/source/browse/trunk/server/rmi/src/main/java/org/cspoker/server/rmi/export/ExportingServerContext.java?r=1023] that was just exported is GCed.
    11:56:02,427 DEBUG (org.cspoker.common.api.shared.context.ForwardingRemoteServerContext.java:72) [finalize] - Garbage collecting old context: org.cspoker.server.rmi.export.ExportingServerContext@15a8767Then a lease request comes in:
    FEINER: RMI TCP Connection(2)-10.0.4.106: [10.0.4.106: sun.rmi.transport.DGCImpl[0:0:0, 2]: java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)]Then the client calls a method on the remote object and the NoSuchObjectException is thrown.
    The behaviour is non-deterministic in any case but yes, on the Linux JVM I'm not seeing the problem, somebody on Windows gets it all the time.

  • Losing database connections in remote objects

    Hi,
    I have an interesting problem. I have a couple of remote objects that bear database connections. They are pooled in another remote object and provided by registry on request to the client. However, when I check the connections after a while, all of them are closed except the last client. I enabled logging and discovered that all clients except the last one connected get disconnected at the same moment when the method clean() of the DGC gets invoked. I can even predict the moment, e.g. when I start the server at XX:XX:31, the connections get closed at YY:YY:31, always after whole minutes. Strange thing is, that even active clients currently querying data get disconnected.
    Jezevec
    Has anybody met such a problem already? My configuration is Java 1.3.0_02, database is Oracle 8i. Thanx for any hints.

    My colleague solved it. If anyone interested, the problem was caused by the class com.borland.dx.sql.dataset.Database which is provided in Borland JBuilder libraries. We used it to create connections to the Oracle db. Do not use this class for RMI applications if you want to avoid problems. It's better to rely on standard JDBC classes.
    Jezevec

  • Object not exported for Remote object in WSAD

    Hi,
    I have a few classes that extend and implement java.rmi.remote object. The JAR is placed under WEB-INF/lib of a web application.
    I am using WSAD 5.1.1. When I start the server, it gives me the following error.
    Can somebody make out anything?? Please help
    Error Stack:
    [5/3/05 12:07:04:188 IST] 3d410866 Helpers W NMSV0610I: A NamingException is being thrown from a javax.naming.Context implementation. Details follow:
    Context implementation: com.ibm.ws.naming.jndicos.CNContextImpl
    Context method: rebind
    Context name: localhost/nodes/localhost/servers/server1
    Root exception is java.rmi.NoSuchObjectException: object not exported
    I tried creating the stub and the skeleton classes manually and added them to the JAR file but still I get the same error. The JAR is in the CLASSPATH of the server.
    I also tried creating a simple remote object and tried binding it:
    Hashtable propertiesMap = new Hashtable();
    propertiesMap.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.cosnaming.CNCtxFactory");
    propertiesMap.put(Context.PROVIDER_URL, "iiop://localhost:2809" );
    Context context= new InitialContext(propertiesMap);
    myRemote instance = new myRemote();
    context.bind("TestString",instance);
    Even this gives :
    javax.naming.ConfigurationException: Problem with PortableRemoteObject.toStub(); object not exported or stub not found. Root exception is java.rmi.NoSuchObjectException: object not exported
    at sun.rmi.transport.ObjectTable.getStub(ObjectTable.java:115)
    at java.rmi.server.RemoteObject.toStub(RemoteObject.java:88)
    at com.ibm.rmi.util.JDKBridge.getJRMPStub(JDKBridge.java:129)
    at com.ibm.rmi.javax.rmi.PortableRemoteObject.toStub(PortableRemoteObject.java:138)
    at javax.rmi.PortableRemoteObject.toStub(PortableRemoteObject.java:105)
    at java.lang.reflect.Method.invoke(Native Method)
    -sam

    Hi,
    Not sure if this question is not clear ... Can somebody give me some hints please??
    -sam

Maybe you are looking for