Nuovo JNLP vs. vecchio JNLP

Da wiki.maggioli.it.
Jump to navigation Jump to search

La procedura di attivazione del Classloader (vedi in proposito l'apposita funzione di amministrazione Configurazione della connessione) produce un nuovo file jnlp di connessione. Esso assume lo stesso nome di quello vecchio (ad esempio sicraweb.jnlp).

In questo modo i link che permettevano l'avvio di sicraweb continuano a funzionare nella nuova modalità.

Il vecchio file jnlp viene mantenuto con il nome modificato da un suffisso. Nel nostro esempio si chiamerà sicraweb_VECCHIO-CL.jnlp. Il vecchio jnlp viene mantenuto per due motivi:

  • permettere rapidamente il ripristino della vecchia modalità di funzionamento
  • fornire alla servlet (direttamente o attraverso i file jnlp concatenati) la lista dei jar contenenti le risorse disponibili per i client


Ecco un esempio di file jnlp per l'avvio con Java Web Start:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://sicrawebappserver:50080" href="/client/sicraweb.jnlp">
  <information>
    <title>SicraWeb</title>
    <vendor>Saga S.p.A.</vendor>
    <homepage href="Sicraweb.html"/>
    <description>Sicraweb</description>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="always"/>
  <resources>
    <j2se version="1.4+" max-heap-size="512M" java-vm-args="-XX:MaxPermSize=512m"/>
    <jar href="/client/signed-jars/it.saga.pubblici.menu.client.jar" main="true" download="eager"/>
    <extension name="sicraweb-resources" href="/client/sicraweb-resources-ver450.jnlp"/>
    <extension name="actalis-siacapi" href="/client/actalis-siacapi.jnlp"/>
    <extension name="jboss-client" href="/client/jboss-client.jnlp"/>
    <extension name="gnome-javatwain" href="/client/gnome-javatwain.jnlp"/>
    <extension name="bouncy-castle" href="/client/bouncy-castle.jnlp"/>
  </resources>
  <application-desc main-class="it.saga.pubblici.menu.MnuCFGMain">
    <argument>jboss:sicrawebappserver:50080:50002</argument>
    <argument>sicraweb</argument>
    <argument>sicraweb</argument>
  </application-desc>
</jnlp>

ed ecco l'equivalente jnlp per l'avvio con il classloader:

<?xml version="1.0" encoding="ISO-8859-1"?>
<jnlp codebase="http://sicrawebappserver:50080" href="/client/sicraweb.jnlp" spec="1.0+">
  <information>
    <title>SicraWeb</title>
    <vendor>Saga S.p.A.</vendor>
    <homepage href="Sicraweb.html"/>
    <description>Sicraweb</description>
  </information>
  <security>
    <all-permissions/>
  </security>
  <update check="always"/>
  <resources>
    <j2se java-vm-args="-XX:MaxPermSize=512m" max-heap-size="512M" version="1.4+"/>
    <jar download="eager" href="/client/signed-jars/class_loader/it.saga.library.classLoader.client.jar" main="true"/>
    <jar download="eager" href="/client/signed-jars/lib/class_loader/ant-cll.jar"/>
    <jar download="eager" href="/client/signed-jars/lib/class_loader/ant-launcher-cll.jar"/>
  </resources>
  <application-desc main-class="it.saga.library.classLoader.client.boot.CllSicraStartUp">
    <argument>http://sicrawebappserver:50080/client/servlet/ClassLoaderServlet</argument>
    <argument>jboss:sicrawebappserver:50080:50002</argument>
    <argument>sicraweb</argument>
    <argument>sicraweb</argument>
    <argument>-Xms128M -Xmx512M -XX:MaxPermSize=512m</argument>
    <argument>[null]</argument>
  </application-desc>
</jnlp>

Le principali differenze fra i due sono le seguenti:

  • Sezione resources: nel secondo jnlp si noti che al posto di /client/signed-jars/it.saga.pubblici.menu.client.jar viene indicato come jar dell'applicazione /client/signed-jars/class_loader/it.saga.library.classLoader.client.jar in modo da lanciare la miniapplicazione di startup invece che sicraweb
  • Sezione application-desc: oltre alla diversa main-class vale la pena notare gli argomenti. Rispetto al vecchio jnlp ci sono tre argomenti in più, che servono al classloader e sono per la precisione il primo e gli ultimi due. Gli argomenti dal secondo al terzultimo (il loro numero è variabile) sono quelli originari di sicraweb.