Changeset 517

Show
Ignore:
Timestamp:
04/14/07 14:54:59 (1 year ago)
Author:
schst
Message:

Added possibility to have stateful JSON-RPC services. Currently requires cookies enabled to work, as session-id is not passed in the request.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/config/xml/json-rpc-service.xml

    r507 r517  
    77    <service name="BuddyQuoteService" className="_test.service.BuddyQuoteService"/> 
    88    <service name="MathService" className="_test.service.MathService"/> 
     9    <service name="NameService" className="_test.service.RememberNameService"/> 
    910  </services> 
    1011</xj:configuration> 
  • trunk/docroot/jsonrpclab/test-json-rpc.php

    r514 r517  
    2828}; 
    2929var math = new MathService(MathCallbackObj); 
     30 
     31var NameCallbackObj = { 
     32  callback__getName: function(id, result, error) { 
     33    alert(result); 
     34  }, 
     35  callback__setName: function(id, result, error) { 
     36    alert('Name succesfully set.') 
     37  } 
     38}; 
     39var nameServ = new NameService(NameCallbackObj); 
     40 
    3041</script> 
    3142 
     
    4354</fieldset> 
    4455 
     56<fieldset> 
     57  <legend>Statefule JSON-RPC example</legend> 
     58  Name: <input type="text" id="name" size="20"/><br/> 
     59  <input type="button" onclick="nameServ.getName();" value="Get Name"/> 
     60  <input type="button" onclick="nameServ.setName(document.getElementById('name').value);" value="Set Name"/> 
     61</fieldset> 
     62 
    4563</head> 
    4664<body> 
  • trunk/src/main/php/net/stubbles/websites/processors/stubJsonRpcProcessor.php

    r507 r517  
    157157 
    158158        $instance = $clazz->newInstance(); 
     159        if ($clazz->implementsInterface('stubStatefulService')) { 
     160            $instance->setSession($this->session); 
     161        } 
    159162        return $method->invokeArgs($instance, $params); 
    160163    }