DO NOT EDIT THE CONTENT OF THIS PAGE DIRECTLY (EXCEPT INSIDE THE DIV BELOW WITH ID=DESCRIPTION), UNLESS YOU KNOW WHAT YOU'RE DOING. THE STRUCTURE OF THE CONTENT IS VITAL IN BEING ABLE TO AUTO UPDATE THE CONTENT THROUGH THE DOC GENERATOR.
...
id
description
Starting Headless Clients from Debug Clients in Servoy Developer
When starting a Headless Client from a Debug Client in Servoy Developer, there are restrictions to which solution can be started in the Headless Client.
Prior to Servoy 6.1.1, the Headless Client would always start with the Active Solution, regardless of which solution would be specified
As of Servoy 6.1.1 the specified solution will be honored, as long as the specified solution is the Active Solution or a solution/module included in the Active Solution
By default the Headless Client which is started will be a debug-able Headless Client. As there can be only one debug-able Client of a specific type at the same time (so one debug-able Web Client, one debug-able Smart Client and one debug-able Headless Client), starting a new debug-able Headless Client will close an existent debug-able Headless Client.
It's possible to start non-debug-able Headless Clients using the Headless Client plugin while in Servoy Developer by sending in the value 'nodebug' as the last value in thesolutionOpenMethodArgsarray parameter. In this case it is also possible to start the Headless Client with a solution/module that isn't the Active Solution or one of it's modules, as long as the specified solution is available in the workspace and uses the same Resources project as the Active Solution.
This will try to get a existing client by the given id if that client is already created for that specific solution; it will create a headless client on the server that will open the given solution if it didn't exists yet.
one solutionindebugmodewhenitisthecurrentactivesolutionoramoduleoftheactive
solution; you can load any solution from the workspace when you pass "nodebug" as last argument in the arguments list (it should still use the same resources project). But then you won't be able to debug it, breakpoints won't hit.
// Creates a headless client that will open the given solution.
var headlessClient = plugins.headlessclient.createClient("someSolution", "user", "pass", null);
if (headlessClient != null && headlessClient.isValid()) {
var x = new Object();
x.name = 'remote1';
x.number = 10;
headlessClient.queueMethod(null, "remoteMethod", [x], callback);
}
// Gets an existing headless client for the given client uuid.
var headlessClient = plugins.headlessclient.getClient("clientID");
if (headlessClient != null && headlessClient.isValid()) {
headlessClient.queueMethod(null, "someRemoteMethod", null, callback);
}
solution.
So calling createClient with the same or another solution/module will replace the existig debug client.
You can load any solution (and have multily JSClient instances) from the workspace when you pass "nodebug" as last argument in the arguments list (it should still use the same resources project).
But then you won't be able to debug it, breakpoints won't hit.
prs
Parameters
sIndent
solutionName
;
username
;
password
;
solutionOpenMethodArgs
;
ret
Returns
sIndent
clients
Supported Clients
sIndentSmartClient,WebClient,NGClient
sam
Sample
sIdent
javascript
lastDetailRow
getClient
name
getClient(clientID)
des
sIndent
Gets an existing headless client for the given client uuid.
The id of the client if it already exists, or it will be the id of the client if it will be created. {String} solutionname - client to lookup by id, if not found a new headless client is created with this id.
The arguments that will be passed to the solution open method.
Table Row (tr)
id
ret
Table Cell (td)
class
Returns
Div
Table Row (tr)
id
sam
Table Cell (td)
Sample
Div
class
sIndent
Code Block
language
javascript
// Creates a headless client that will open the given solution.
var storedSolutionSpecificID = "aaaabbbbccccc1111";
var headlessClient = plugins.headlessclient.getOrCreateClient(storedSolutionSpecificID, "someSolution", "user", "pass", null);
if (headlessClient != null && headlessClient.isValid()) {
var x = new Object();
x.name = 'remote1';
x.number = 10;
headlessClient.queueMethod(null, "remoteMethod", [x], callback);
}
Table Row (tr)
class
lastDetailRow
Table Cell (td)
sIndent
JSClient - An existing JSClient or the JSClient that is created.