Child pages
  • Bootstrapper (alternative download method of the SmartClient)
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

 

To speed up (especially under windows) the smart clients startup, you can use a special bootstrapper.jar 

From Servoy 8.1.0 ang higher you can find the bootstrapper.jar in the SERVOY_INSTALL/application_server/webapps/root directory.

 
This by passes for the most part webstart, webstart only downloads and verifies the bootstrap.jar and jnlp.

By default the downloads will go into [user-home]\.servoy\libCache\[hostname], but from version that is shipped with Servoy 815 and higher you can also set that home property to any location you want by using a property tag:

<property name="jnlp.bootstrapper.home.dir" value="d:/temp/bootstrap/"/>

inside the <resource> section just below the <j2se> tag.


if 1 file changes on the server it will delete the cache and downloads it again.

The jnlp file can be fully configured what ever you like (or should be filled in correctly)

{{YOUR_FULL_HOSTNAME_AND_CONTEXT_IF_DEPLOYED_THROUGH_WAR}} : That needs to be filled based what the users sees in the browser (so host name with port and with context if the servoy app server is not deployed at the ROOT)

The rest between the <information> tag can be filled in to what ever you want.

between the <resources> tag you can specify any java version (default is only 1.8 added you can add another line that says 1.7)
and this only has a reference to the bootstrap.jar

If you sign your self then you can change anything in that jar (so including the application-name manifest property)
also if you have adjusted the bootstrap.jnlp file (can be renamed also to what ever you like) exactly how you want
Then you can add that jnlp file to the jar file under:

JNLP-INF/APPLICATION_TEMPLATE.JNLP

see: http://docs.oracle.com/javase/7/docs/te ... dJNLP.html

and then sign the jar again, this makes the jnlp file also signed so it doesn't matter at all what kind of things you use/set in it

What should also go between the <resources> tag are all the native resources of your beans/plugin.
So you you have a plugin or bean that has in its jnlp file one or more native resource like the browser suite:
https://www.servoyforge.net/projects/br ... e.jar.jnlp

Then you need to copy those over so the <resources> tags with "os" and/or "arch" needs to be in the bootstrap.jnlp file

The last thing are the arguments:

<argument>{{SOLUTION_NAME}}</argument>


the first argument should always be the solution name that you want to load (so if you want to load directly a specific solution)

You can also not specific it then the select solution dialog is shown.

You can also make profiles (that is what servoy profiles basically is, pushing arguments to the client)
Then you can add multiply arguments to the client by adding more, like adding:

<argument>system.property.SocketFactory.tunnelConnectionMode:http</argument>

as the second argument (the first should then always be a soluton or just "servoy_client")

If you add that argument then the tunnel will be forced in http mode (if the server is configured in "http&Socket)

This way you can push any system.property to servoy that you want.

<argument>bootstrapthreadpoolsize:{{MAX_THREAD_POOL_SIZE}}</argument> 

The bootstrapthreadpoolsize argument is used to configure the maximum number of concurrent connections used to download the application files.

The default value for the maximum concurrent connections is 8. If you want to download the resources one by one (in case of network problems for instance), then you can set the bootstrapthreadpoolsize to 1.

bootstrap.jar and bootstrap.jnlp are found in the ROOT of the context
So that is in a default servoy installation: \application_server\server\webapps\ROOT
in a war file it should be in the root of the war file

Then you can access it through:

http://hostname:port/bootstrap.jnlp

(and the above code base should be then http://hostname:port)

  • No labels