Page 1 of 1

Web application Archive erstellen

PostPosted: Tue Sep 06, 2011 6:36 pm
by Development@SIB
Um eine Applikation zu installieren/deployen, empfehlen wir die Erstellung eines Web application Archives (WAR). Dieses Format wird von allen namhaften Applikationsservern unterstützt.


Wie ist das Archiv aufgebaut?

<application>.war
..
|- jvxclient.jar
|- <application classes and resources (src.client)>.jar
|- <all shared libs (libs/*.jar)>
|- <all client libs (libs/client/*.jar)>
|- index.html
|- [index_applet.jnlp]
|- [applet.jnlp]
|- [application.jnlp]
|- [favicon.ico]
/- [help]
/- WEB-INF
..
|- web.xml
/- lib
..
|- jvx.jar
|- <application classes and resources (src.server)>.jar
|- <all shared libs (libs/*.jar)>
|- <all server libs (libs/server/*.jar)>
/- rad
..
/- apps
..
/- <your apps>
/- server
..
|- config.xml


Ein Beispiel für einen Deploymentdeskriptor (web.xml) ist hier zu finden.

Wenn die Applikation via Webstart angeboten werden soll, müssen die optionalen jnlp Dateien ebenfalls im Archiv enthalten sein.

Als Startseite (index.html) kann z.B. die Startseite aus unserer Showcase Applikation verwendet werden.

Code: Select all
<html>
  <head>
    <link rel="icon" href="favicon.ico" type="image/x-icon">
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
    <title>Showcase Application</title>
  </head>
  <body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" scroll="no">

    <script language="JavaScript" type="text/javascript">
    <!--
      var attributes = {'width':'100\%',
                        'height':'100\%',
                        'align':'top',
                        'vspace':'0',
                        'hspace':'0'};
      var parameters = {'codebase':'.',
                        'code':'com.sibvisions.rad.ui.swing.impl.SwingApplet',
                        'archive':'jvxclient.jar, showcase.jar, jfreechart-1.0.13.jar, jcommon-1.0.16.jar',
                        'name':'Showcase Application',
                        'mayscript':'true',
                        'scriptable':'true',
                        'jnlp_href':'applet.jnlp?install=version11',
                        'separate_jvm':'false',
                        'main':'com.sibvisions.apps.showcase.Showcase',
                        'config':'/com/sibvisions/apps/showcase/application.xml',
                        'Application.connectionClass':'com.sibvisions.rad.remote.http.HttpConnection'};

      var doc = '<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" ' +
                        'codebase="http://java.sun.com/update/1.6.0/jinstall-6u20-windows-i586.cab#Version=6,0,0,2"';
      for (var attribute in attributes) {
        doc += (' ' + attribute + '="' + attributes[attribute] + '"');
      }
      doc += '>';
      for (var parameter in parameters) {
        doc += '<param name="' + parameter + '" value="' + parameters[parameter] + '">';
      }
      doc += '<embed type="application/x-java-applet"';
      for (var attribute in attributes) {
        doc += (' ' + attribute + '="' + attributes[attribute] + '"');
      }
      for (var parameter in parameters) {
        doc += (' ' + parameter + '="' + parameters[parameter] + '"');
      }
      doc += '></embed>';
      doc += '</object>';

      document.writeln(doc);
    //-->
    </script>

  </body>
</html>

Wenn der Parameter jnlp_href verwendet wird, sollte bei jedem Deployment die Version hochgezählt werden, damit der Client eine Aktualisierung durchführen kann.

Die verwendete applet.jnlp

Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<jnlp
  spec="1.0+"
  codebase="http://servername/showcase">
  <information>
    <title>Showcase Application</title>
    <vendor>SIB Visions GmbH</vendor>
    <description>Showcase Application</description>
    <description kind="short">Showcase Application</description>
  </information>
  <resources>
    <j2se version="1.5+"/>
    <jar href="jvxclient.jar" main="true"/>
    <jar href="showcase.jar"/>
    <jar href="jfreechart-1.0.13.jar"/>
    <jar href="jcommon-1.0.16.jar"/>
  </resources>
  <applet-desc
    name="Showcase Application"
    main-class="com.sibvisions.rad.ui.swing.impl.SwingApplet"
    width="1024"
    height="768">
    <param name="main" value="com.sibvisions.apps.showcase.Showcase"/>
    <param name="config" value="/com/sibvisions/apps/showcase/application.xml"/>
    <param name="Application.connectionClass" value="com.sibvisions.rad.remote.http.HttpConnection"/>
    <param name="Application.Menu.exit.visible" value="false"/>
  </applet-desc>
</jnlp>


Im Download sind ebenfalls Beispiele für die Webstart (jnlp) Dateien enthalten.