Dels Applets a Java Web Start amb JNLP

Darrera actualització: 07-04-2016

Tal i com us explicàvem fa unes setmanes, la tecnologia applet tal i com la coneixem deixarà de poder utilitzar-se als navegadors d’internet en breu i, a més, la versió Java 9 deixarà de donar suport als plugins de navegador que permeten l’execució d’aquests applets.

Per tant, davant d’aquesta problemàtica se’ns presenten dues solucions:

  • Continuar utilitzant els applets amb l’alternativa recomanada per Oracle: Java Web Start
  • Canviar la funcionalitat que utilitza els applets per tecnologia nativa web

Java Web Start (JWS)

Java Web Start permet executar aplicacions des de la web, però enlloc d’executar-se dins del navegador, incrustats a l’html (tags object, applet, …) l’usuari es descarrega un fitxer JNLP (Java Network Launching Protocol) i, en clicar-lo, s’executa l’aplicació JWS fora del navegador.

En el cas dels applets, JWS dóna suport a la seva execució, de manera que un applet incrustat en una pàgina web d’aquesta manera:

	<applet code="java2d.Java2DemoApplet"          
    	jnlp_href="dynamictree_applet.jnlp"         
    	width="710" 
    	height="540" >        
	    <param name="param1" value="value1"/>
	</applet> 

Passaria a cridar-se mitjançant un fitxer amb extensió jnlp que contindria el següent codi:

	<jnlp spec='1.0+' codebase='http://sc-pre.aoc.cat/appletCentralitzat/resources/jars/' href=''>
		<information>
			<title>Applet Centralitzat</title>
		</information>
		<resources>
			<jar href="SwingSet2.jar"/>
		</resources>
		<applet-desc main-class="SwingSet2Applet" name="SwingSet" width="625" height="595">
			<param name="param1" value="value1"/>
		  	<param name="param2" value="value2"/>
		</applet-desc>
	</jnlp>

L’usuari es descarregaria aquest fitxer des de la web i aixecaria l’aplicació Java fora del navegador.

En el cas que l’applet intercanviés informació amb l’aplicació web que el fa servir (o a la inversa) mitjançant javascript, aquesta comunicació deixarà de funcionar, i, per tant, s’haurà de canviar la manera de comunicar l’aplicació applet/java i l’aplicació web. La solució passa per crear un servei del costat de servidor que s’encarregui de comunicar l’applet i l’aplicació web.

Nota d’Oracle sobre la migració d’applets a JWS: http://docs.oracle.com/javase/8/docs/technotes/guides/deploy/applet_dev_guide.html#JSDPG1032

Codi


comments powered by Disqus