---+ APPX Desktop Client Launched via Java Web Start _This document will explain how to start the APPX Desktop Client via Java Web Start Technology._ %TOC% ---++ Overview When you publish the APPX Desktop Client using Java Web Start technology you ensure the most current version of the application will be deployed, as well as the correct version of the Java Runtime Environment (JRE). Since the APPX Desktop Client will only be configured on the web server, you will not need to install the client on each desktop in your enterprise, just have the user base run the application for a published URL. This document applies to APPX Desktop Client version 5.0.4 and above. These instructions do not require any APPX server configuration other than an APPX Login Manager configured to accept logins. APPX server on any platform may be connected to via the client when launched with Java Web Start. The size of the APPX Java Web Start bundle is about 1.3 MB. When the APPX Desktop Client is run for the first time, Java Web Start will download the entire package ; the next time it will check only for modified jar files (an upgrade) and download them. If this is not the case, the application will start immediately. ---++ Required software components ---+++ APPX Desktop Client Java Web Start Bundle You can get the APPX Desktop Client Java Web Start Bundle from [[http://www.appx.com/ftp/appx/products/appx/client/5.0.4/java_web.tgz][here for Unix or Linux]] or [[http://www.appx.com/ftp/appx/products/appx/client/5.0.4/java_web.zip][here for Windows]]. ---+++ APPX Server You need a functioning APPX installation. Follow instructions in [[APPX500InstallationInstructions][this document]] to install APPX on Windows if you don't already have APPX installed. ---+++ Web Server You need a functioning web server configured with jnlp mime type support. Apache and IIS are two common servers. ---++ Quick steps ---+++ APPX Desktop Client Java Web Start Bundle * Unbundle the APPX Desktop Client Java Web Start Bundle files into a directory off of your web server's web root. * Configure the .html file to link to the .jnlp file. * Edit the .jnlp file and modify any href tags to fit your web server. * Web Server .jnlp mime type settings * Apache * /etc/mime.types ---+++ APPX Server [[APPX500InstallationInstructions][Install APPX Server]]. No special configuration is needed in the APPX Server for APPX Desktop Client connectivity when launched via Java Web Start, just make sure you have an APPX Client Manager ( [[APPXLoginManagerForUnixLinux][Unix or Linux]] or [[APPXLoginManagerForUnixLinux][Windows]]) listening and accepting logins. ---++ Detailed steps Here are the steps I used to load the APPX Desktop Client via Java Web Start. These instructions assume that you already have a working installation of [[APPX500InstallationInstructions][APPX Server]] that is configured with a Client Manager ( [[APPXLoginManagerForUnixLinux][Unix or Linux]] or [[APPXLoginManagerForUnixLinux][Windows]]) and accepting logins. You must also have a web server installed and started. ---+++ Download and place the APPX Desktop Client Java Web Start Bundle. For a Windows Web Server, download the Java Web Start Bundle from [[http://www.appx.com/ftp/appx/products/appx/client/5.0.4/java_web.zip][here]]. For my Linux/Unix server I downloaded version 5.0.4 from [[http://www.appx.com/ftp/appx/products/appx/client/5.0.4/java_web.tgz][here]]. Place the bundle in a directory off of your web server's web root and follow the steps below to install and configure. * I am going to use the command line tool wget to fetch the file bundle: <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver /]$ <strong>cd /var/www/html</strong> [joe@webserver /]$ <strong>sudo wget http://www.appx.com/ftp/appx/products/appx/client/5.0.4/java_web.tgz</strong> [joe@webserver html]$ </pre> </blockquote> * Now let's untar the files <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver html]$ <strong>sudo tar xzvf java_web.tgz</strong> </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <pre>appx/ appx/appx32.gif appx/README.txt appx/INSTALL.txt appx/appx.html appx/splash.gif appx/APPXLaunchButton.png appx/appx-small.png appx/appx-nativelib.jar appx/appx.jar appx/appx.jnlp </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver html]$ <strong>ls -la</strong> </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <pre>total 1216 drwxr-xr-x 3 root root 4096 Mar 4 14:27 . drwxr-xr-x 10 root root 4096 Jun 26 2007 .. drwxrwxrwx 2 root root 4096 Mar 3 14:40 appx -rw-r--r-- 1 root root 1233805 Mar 4 14:27 java_web.tgz </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver html]$ <strong>cd appx</strong> [joe@webserver appx]$ <strong>ls</strong> </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <pre>appx32.gif appx.html appx.jar appx.jnlp APPXLaunchButton.png appx-small.png appx-nativelib.jar INSTALL.txt README.txt splash.gif </pre> </blockquote> ---+++ APPX Desktop Client Web Start Bundle Components ---++++ appx32.gif The appx32.gif file is the file used as an application runtime icon. It is referenced by the appx.jnlp file that we review later in this document. ---++++ README.txt README.txt contains the following very brief instructions to the reader. <blockquote style="margin-right: 0px;" dir="ltr"> <verbatim> Place these files in a directory named /appx/ off your web server's webroot. You need to change three items, all references to www.example.com to read your site URL: In appx.html appx.html: ---> var url = "http://www.example.com/appx/appx.jnlp"; appx.html: ---> deployJava.launchButtonPNG = "http://www.example.com/appx/APPXLaunchButton.png"; In appx.jnlp: appx.jnlp: ---> <jnlp spec="1.5+" codebase="http://www.example.com/appx" href="appx.jnlp" version ="5.0.4"> Please see our Wiki at http://wiki.appx.com/wiki/bin/view/Main/LaunchingAPPXDesktopClientFromWebPageViaJavaWebstart for further documentation. </verbatim> </blockquote> ---++++ INSTALL.txt INSTALL.txt points the reader to README.txt ---++++ appx.html The appx.html file exists only to provide the user with a link to click the appx.jnlp file. It is not technically needed because if someone entered the path to the jnlp file the application would launch just the same as if the jnlp file had been clicked from a link in the html file. Let's take a look at the appx.html file. This file is just a starter file that you can use to load the .jnlp file. There is a bit of javascript code that attempts to detect if a JRE is installed on the user's desktop for the Java Web Start launch. If the JRE needs to be installed or updated the script will either attempt to update the JRE or present the user with the appropriate link to download the software manually. ---+++++ appx.html contents <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver appx]$ <strong>cat appx.html</strong> </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <verbatim> <HTML> <HEAD> <TITLE>APPX Desktop Client Web Start</TITLE> <body link="#333333" vlink="#444444" alink="#106D86"> </HEAD> <BODY BGCOLOR=#146C86> <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> <font color=white> <center> <hr> <font veranda> <font style=bold> <font size=13pt> <font color=white> APPX Desktop Client Web Start Demonstration <h3> Clicking the icon below will attempt to detect if the correct Java JRE is installed, and if possible install it. If the installer determines you need an updated JRE but it can't auto install a JRE, it will place you on Sun's download page for your platform. After the JRE requirement is met, the APPX Desktop Client will be downloaded and launched. <hr> <h3> <!--<A HREF="http://www.example.com/appx/appx.jnlp">Click</a> To Launch the APPX Desktop Client Demonstration--> <!-- Start of Sun's deployJava.js script that attempts to detect if Java is installed and install it or updated --> <!-- as needed for Windows, Linux and Mac. Sun encourages you to hotlink their version of the script --> <!-- because they update it as needed. At the moment, the Windows platform has the best support for detection --> <!-- This deployJava.js script is meant to replace the A HREF line above, so we've left it commented out --> <script src="http://java.com/js/deployJava.js"></script> <script> var url = "http://www.example.com/appx/appx.jnlp"; deployJava.launchButtonPNG = "http://www.example.com/appx/APPXLaunchButton.png"; deployJava.createWebStartLaunchButton(url, '1.6+'); </script> <BR> <hr> <h5>Please see our <a href=http://wiki.appx.com/wiki/bin/view/Main/LaunchingAPPXDesktopClientFromWebPageViaJavaWebstart>Wiki</a> for further documentation. </BODY> </HTML> [joe@webserver appx]$ </verbatim> </blockquote> ---++++++ appx.html modifications You should change the following two URL values in your appx.html file to match your site. <blockquote style="margin-right: 0px;" dir="ltr"> <pre> var url = " http://www.example.com/appx/appx.jnlp "; deployJava.launchButtonPNG = " http://www.example.com/appx/APPXLaunchButton.png "; </pre> </blockquote> ---++++ splash.gif This is the initial image displayed while the APPX Desktop Client is loading, it is referenced by name in the appx.jnlp file. ---++++ APPXLaunchButton.png APPXLaunchButton.png is an image file that is displayed for the user to click to begin the JRE detection and ultimately start the APPX Desktop Client. ---++++ appx-nativelib.jar The appx-nativelib.jar file contains platform specific files for the proper execution of the appx.jar file. ---++++ appx.jar The APPX Desktop Client in Java jar format. ---++++ appx.jnlp This is an XML file that defines the environment that the APPX Desktop Client will run it. The file is made up of elements, element values, element stanzas and comments. The file is documented with comments. Now take a look at the appx.jnlp file. ---+++++ appx.jnlp contents <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver appx]$ <strong>cat appx.jnlp</strong> </pre> </blockquote> <blockquote style="margin-right: 0px;" dir="ltr"> <verbatim> <?xml version="1.0" encoding="utf-8"?> <!-- JNLP File for APPX Desktop Client 5.0.4 --> <?xml version="1.0" encoding="utf-8"?> <!-- JNLP File for APPX Desktop Client --> <!-- example JNLP file that will launch the APPX Desktop Client 5.0.4 --> <!-- where the jnlp file lives on the web --> <jnlp spec="1.5+" codebase="http://www.example.com/appx" href="appx.jnlp" version ="5.0.4"> <information> <title>APPX Desktop Client Java Web Start Demo Application</title> <vendor>APPX Software, Inc.</vendor> <homepage href="http://www.appx.com"/> <description>APPX Desktop Client version 5.0.4.</description> <description kind="short">Connects to APPX Client Login Manager.</description> <!-- hover help for this app. --> <description kind="tooltip">APPX Desktop Client 5.0.4</description> <!-- This is the APPX Desktop Client application icon and splash screen. --> <!-- relative to codebase --> <icon href="appx32.gif" kind="default"/> <icon href="splash.gif" kind="splash"/> <!-- allow app to run without Internet access --> <offline-allowed /> </information> <!-- The APPX Desktop Client requires the all-permissions value for the security element --> <security> <all-permissions /> </security> <resources> <!-- Acceptable JVMs in preferred order, best first --> <!-- Sun JVM --> <j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se" /> <!-- This swing.noxp value prevents a "look and feel" issue on Vista --> <property name="swing.noxp" value="true"/> <!-- application code, load before launch. JNLP 1.6 main="true" indicates jar with main class --> <jar href="appx.jar" main="true" download="eager" /> <nativelib href="appx-nativelib.jar"/> </resources> <!-- application class with main method --> <!-- This is the section where you would add startup parameters for the APPX --> <!-- Desktop Client. Items such as TCP port number, initial window size etc --> <application-desc main-class="start.Appx"> <!-- command line arguments --> <argument>-windowTitle=APPX - $(host):$(port)</argument> <argument>-remotePort=8064</argument> <argument>-remoteUser=prospect</argument> <argument>-remoteHost=demo.appx.com</argument> <argument>-remotePassword=prospect</argument> <argument>-screenRows=28</argument> <argument>-screenColumns=110</argument> <argument>-SSLMode=disabled</argument> </application-desc> </jnlp> [joe@webserver appx]$ </verbatim> </blockquote> ---++++++ appx.jnlp modifications You should change the following URL value in your appx.jnlp file to match your site. <blockquote style="margin-right: 0px;" dir="ltr"> <pre> codebase=" http://www.example.com/appx " href="appx.jnlp" </pre> </blockquote> Towards the end of the appx.jnlp file, notice the application-desc elements with argument attributes of -windowTitle, -remoteHost ... You can add any APPX Desktop Client startup parameter that you normally find when you select Options, Advanced upon initially starting the APPX Desktop Client. ---+++++ Table of possible element / attribute available to you in a JNLP file. <table style="width: 1111px;" cellspacing="3" cellpadding="4" border="1"> <col width="126"></col> <col width="140"></col> <col width="646"></col> <col width="73"></col> <col width="66"></col> <tbody> <tr> <th width="126"> Element </th> <th width="140"> Attributes </th> <th width="646"> Description </th> <th width="73"> Since </th> <th width="66"> Required </th> </tr> <tr> <td width="126"> jnlp </td> <th width="140"> </th> <td width="646"> This is the main xml element for a jnlp file. Everything is contained within the jnlp element. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> spec </td> <td width="646"> The spec attribute can be 1.0, 1.5.0, or 1.6.0 or can use the wildcards such as 1.0+ or 1.6+. It denoted the minimum version of the JNLP Specification that this jnlp file can work with. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> codebase </td> <td width="646"> The codebase attribute specifies the base location for all relative URLs specified in href attributes in the JNLP file. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> The href specifies the URL of the JNLP file itself. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> version </td> <td width="646"> The version of the application being launched, as well as the version of the JNLP file itself. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> information </td> <td width="140"> </td> <td width="646"> The information element contains other elements that describe the application and it's source. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> os </td> <td width="646"> Specifies the operating system for which this information element should be considered. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> arch </td> <td width="646"> Specifies the architecture for which this information element should be considered </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> platform </td> <td width="646"> Specifies the platform for which this information element should be considered. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> locale </td> <td width="646"> Specifies the locale for which this information element should be considered. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> title </td> <td width="140"> </td> <td width="646"> The title element specifies the title of the application. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> vendor </td> <td width="140"> </td> <td width="646"> The vendor element specifies the provider of the application. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> homepage </td> <td width="140"> </td> <td width="646"> The homepage of the application. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> A URL pointing to where more information on this application can be found. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> description </td> <td width="140"> </td> <td width="646"> A short statement describing the application. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> kind </td> <td width="646"> An indicator as to what type of description this is, legal values are one-line, short, and tooltip. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> icon </td> <td width="140"> </td> <td width="646"> Describes an icon that can be used to identify the application to the user. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> A URL pointing to the icon file, may be in one of the following formats: gif, jpg, png, ico. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> kind </td> <td width="646"> Indicates the suggested use of the icon, can be: default, selected, disabled, rollover, splash, or shortcut. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> width </td> <td width="646"> Can be used to indicate the resolution of the image. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> height </td> <td width="646"> Can be used to indicate the resolution of the image. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> depth </td> <td width="646"> Can be used to indicate the resolution of the image. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> offline-allowed </td> <td width="140"> </td> <td width="646"> Indicates that this application can operate when the client system is disconnected from the network. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> shortcut </td> <td width="140"> </td> <td width="646"> The shortcut element can be used to indicate an application's preferences for desktop integration. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> online </td> <td width="646"> Can be used to describe the application's preference for creating a shortcut to run online or offline. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> desktop </td> <td width="140"> </td> <td width="646"> Can be used to indicate an application's preference for putting a shortcut on the users desktop. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> menu </td> <td width="140"> </td> <td width="646"> Can be used to indicate an application's preference for putting a menu item in the users start menus. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> sub-menu </td> <td width="646"> Can be used to indicate an application's preference for where to place the menu item. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> association </td> <td width="140"> </td> <td width="646"> Can be used to hint to the JNLP client that it wishes to be registered with the operating system as the primary handler of certain extensions and a certain mime-type. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> extensions </td> <td width="646"> Contains a list of file extensions (separated by spaces) that the application requests it be registered to handle. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> mime-type </td> <td width="646"> Contains the mime-type that the application requests it be registered to handle. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> related-content </td> <td width="140"> </td> <td width="646"> Describes an additional piece of related content that may be integrated with the application. </td> <td width="73"> 1.5.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> A URL pointing to the related content. </td> <td width="73"> 1.5.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> </td> <td width="646"> </td> <td width="73"> </td> <td width="66"> </td> </tr> <tr> <td width="126"> update </td> <td width="140"> </td> <td width="646"> The update element is used to indicate the preferences for how application updates should be handled by the JNLP Client. </td> <td width="73"> 1.6.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> check </td> <td width="646"> Indicates the preference for when the JNLP Client should check for updates. It can be always, timeout, or background.. </td> <td width="73"> 1.6.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> policy </td> <td width="646"> Indicates the preference for how the JNLP Client should handle an application update when it is known an update is available before the application is launched. It can be always, prompt-update, or prompt-run. </td> <td width="73"> 1.6.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> </td> <td width="646"> </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> security </td> <td width="140"> </td> <td width="646"> This element can be used to request enhanced permissions. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> all-permissions </td> <td width="140"> </td> <td width="646"> Requests that the application be run with all permissions. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> j2ee-application-client-permissions </td> <td width="140"> </td> <td width="646"> Requests that the application be run with a permission set that meets the security specifications of the J2EE Application Client environment. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> </td> <td width="646"> </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> resources </td> <td width="140"> </td> <td width="646"> Describes all the resources that are needed for an application. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> os </td> <td width="646"> Specifies the operating system for which the resources element should be considered. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> arch </td> <td width="646"> Specifies the architecture for which the resources element should be considered. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> locale </td> <td width="646"> Specifies that the locales for which the resources element should be considered. </td> <td width="73"> </td> <td width="66"> </td> </tr> <tr> <td width="126"> java (or java se) </td> <td width="140"> </td> <td width="646"> Specifies what version(s) of Java to run the application with. </td> <td width="73"> 1.6.0 (java) </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> version </td> <td width="646"> Describes an ordered list of version ranges to use. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> The URL denoting the supplier of this version of java, and where it may be downloaded from. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> java-vm-args </td> <td width="646"> Indicates an additional set of standard and non-standard virtual machine arguments that the application would prefer the JNLP Client to use when launching Java. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> initial-heap-size </td> <td width="646"> Indicates the initial size of the Java heap. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> max-heap-size </td> <td width="646"> Indicates the maximum size of the Java heap. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> jar </td> <td width="140"> </td> <td width="646"> Specifies a JAR file that is part of the application's classpath. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> The URL of the jar file. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> version </td> <td width="646"> The requested version of the jar file. Requires using the version-based download protocol </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> main </td> <td width="646"> Indicates if this jar contains the class containing the main method of the application. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> download </td> <td width="646"> Can be used to indicate this jar may be downloaded lazily, or when needed. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> size </td> <td width="646"> Indicates the downloadable size of the jar file in bytes. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> part </td> <td width="646"> Can be used to group resources together so they will be downloaded at the same time. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> nativelib </td> <td width="140"> </td> <td width="646"> Specifies a JAR file that contains native libraries in it's root directory. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> The URL of the jar file. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> version </td> <td width="646"> The requested version of the jar file. Requires using the version-based download protocol </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> download </td> <td width="646"> Can be used to indicate this jar may be downloaded lazily. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> size </td> <td width="646"> Indicates the downloadable size of the jar file in bytes. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> part </td> <td width="646"> Can be used to group resources together so they will be downloaded at the same time. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> extension </td> <td width="140"> </td> <td width="646"> Contains pointer to an additional component-desc or installer-desc to be used with this application. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> href </td> <td width="646"> The URL to the additional extension jnlp file. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> version </td> <td width="646"> The version of the additional extension jnlp file. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> name </td> <td width="646"> The name of the additional extension jnlp file </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> ext-download </td> <td width="140"> </td> <td width="646"> Can be used in an extension element to denote the parts contained in a component-extension. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> ext-part </td> <td width="646"> Describes the name of a part that can be expected to be found in the extension. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> download </td> <td width="646"> Can be used to indicate this extension may be downloaded eagerly or lazily. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> part </td> <td width="646"> Denotes the name of a part in this jnlp file to include the extension in. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> package </td> <td width="140"> </td> <td width="646"> Can be used to indicate to the JNLP Client which packages are implemented in which JAR files. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> name </td> <td width="646"> Package name contained in the jar files of the given part. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> part </td> <td width="646"> Part name containing the jar files that include the given package name. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> recursive </td> <td width="646"> Can be used to indicated that all package names beginning with the given name, can be found in the given part. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> property </td> <td width="140"> </td> <td width="646"> Defines a system property that will be available through the System.getProperty and System.getProperties methods. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> name </td> <td width="646"> Name of the system property. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> value </td> <td width="646"> Value it will be set to. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> </td> <td width="646"> </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> </td> <td width="646"> Note: A jnlp file must contain one of application-desc, applet-desc, component-desc, or installer-desc </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> applicaation-desc </td> <td width="140"> </td> <td width="646"> Denotes this is the jnlp file for an application. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> main-class </td> <td width="646"> The name of the class containing the public static void main(String[]) method of the application. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> argument </td> <td width="140"> </td> <td width="646"> Each argument contains (in order) an additional argument to be passed to main. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> applet-desc </td> <td width="140"> </td> <td width="646"> Denotes this is the jnlp file for an applet. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> main-class </td> <td width="646"> This is the name of the main Applet class. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> documentbase </td> <td width="646"> The document base for the Applet as a URL. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> name </td> <td width="646"> Name of the Applet. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> width </td> <td width="646"> The width of the applet in pixels. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> height </td> <td width="646"> The height of the applet in pixels </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> param </td> <td width="140"> </td> <td width="646"> A set of parameters that can be passed into the applet. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> name </td> <td width="646"> The name of this parameter </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> </td> <td width="140"> value </td> <td width="646"> The value of this parameter </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> <tr> <td width="126"> component-desc </td> <td width="140"> </td> <td width="646"> Denotes this is the jnlp file for a component extension. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> installer-desc </td> <td width="140"> </td> <td width="646"> Denotes this is the jnlp file for an installed extension. </td> <td width="73"> 1.0 </td> <td width="66"> </td> </tr> <tr> <td width="126"> </td> <td width="140"> main-class </td> <td width="646"> The name of the class containing the public static void main(String[]) method of the installer. </td> <td width="73"> 1.0 </td> <td width="66"> yes </td> </tr> </tbody> </table> ---+++ Configure your web server's jnlp Mime type settings. Your webserver needs to support the .jnlp mime type. There are too many web servers and web server version that each configure via different actions, syntax or configuration file location that it is beyond the scope of this document to cover mime type configuration fully. However, this might be enough to get you on the right track if your server is not already configured for jnlp mime type support. ---++++ Apache web server Mime type settings You need to add a mime type entry for jnlp. You can either use the Apache [[http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addtype][AddType]] directive inside the Apache [[http://httpd.apache.org/docs/2.0/configuring.html][httpd.conf]] file or the [[http://httpd.apache.org/docs/2.0/howto/htaccess.html][.htaccess]] file, or modify the Apache web server global mime.types file. The location of this mime.types file is specified by the [[http://httpd.apache.org/docs/2.0/mod/mod_mime.html#typesconfig][TypesConfig]] Apache directive. Apache recommends that you use the [[http://httpd.apache.org/docs/2.0/mod/mod_mime.html#addtype][AddType]] directive. If you wish to modify the Apache global [[http://httpd.apache.org/docs/2.0/mod/mod_mime.html#typesconfig][TypesConfig]] file and the file exists in /etc/mime.types, then you might try syntax like the following which will grep for the jnlp entry, and if not found will append an entry for jnlp support. <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver /]$ <strong>grep -qs 'application/x-java-jnlp-file' /etc/mime.types || echo 'application/x-java-jnlp-file jnlp' >> /etc/mime.types</strong> [joe@webserver /]$ </pre> </blockquote> Or, if you wish to modify an [[http://httpd.apache.org/docs/2.0/howto/htaccess.html][.htaccess]] file in your http://www.example.com/appx/ directory, and your web server is configured to allow .htaccess modifications then try the following syntax which will grep for the jnlp entry, and if not found will append an entry for jnlp support. <blockquote style="margin-right: 0px;" dir="ltr"> <pre>[joe@webserver /]$ <strong>grep -qs 'application/x-java-jnlp-file' /var/www/html/appx/.htaccess || echo 'AddType application/x-java-jnlp-file jnlp' >> /var/www/html/appx/.htaccess</strong> [joe@webserver /]$ </pre> </blockquote> ---++++ Microsoft IIS web server Mime type settings ---+++++ Windows 2000 IIS Server Start the IIS Management Console and perform the following steps: * Right-click server computer in left pane, then select Properties from the drop-down menu. * In the 'Computer MIME Map,' click the [Edit] button. * The File Types window is displayed. Click New Type. * In the File Type box, enter the following in the Associated Extension edit box: * jnlp * In the Content Type (MIME) box, enter: * Application/x-java-jnlp-file jnlp * Click [Ok] to close the File Type box. Click [Ok] again to close the File Types Window. Click [Ok] in the Server properties window to save the changes. Restart the IIS Admin Service. ---+++++ Windows Server 2003 and XP IIS Server Start the IIS Management Console and perform the following steps: * Right-click server computer in left pane, then select Properties from the drop-down menu. * In the HTTP Headers tab, click [MIME Types]. * The MIME Types window displays. Click [New]. * In the MIME Type box, enter the following in the Extension edit box: * jnlp * In the MIME type box, enter: * Application/x-java-jnlp-file jnlp * Click [OK] to close the MIME Type box. Click [OK] again to close the MIME Types Window. Click [OK] in the Server properties window to save the changes. Restart the IIS Admin Service. ---+++++ Windows Vista IIS Server Start the IIS Management Console and perform the following steps: * Double-click the MIME Types module. * The MIME Types window displays. Click [Add] in the Action panel. * The Add MIME Type window displays. Enter the following in the File Name Extension box: * jnlp * In the MIME Type box, enter: * Application/x-java-jnlp-file jnlp * Click [OK] to close the MIME Type window. Restart the IIS Admin Service. That's all there is to publishing APPX Desktop Client utilizing Java Web Start technology. ---++ Troubleshooting tips * To clear the Web Start Cache * *javaws -uninstall* This will remove all cached applications. * Clear Browser's temporary files. ---++ Bugs: 1 <span style="color: #000000;"><span style="color: lime;">Fixed</span> - Bug Description 1. </span> 1 <span style="color: red;">OPEN</span> - <span style="color: #ff0000;"><span style="color: black;"> [[http://bugtracker.appx.com/view_bug.jsp?bugid=invalid][Bug test]] - Test bug. Not valid.</span> </span> ---++ Comments: _Read what other users have said about this page or add your own comments._ --- Is there a .zip version of java_web.tgz? Or something that Windows Vista knows how to uncompress? -- Main.RogerHuffman - 26 Mar 2009 You should be able to use WinRAR to unzip a tgz file on Windows. WinRAR is a free download, available at http://download.cnet.com/WinRAR/3000-2250_4-10007677.html, and other places as well. But your point is a good one, and we'll probably add a zip file version shortly. -- Main.AlKalter - 26 Mar 2009 The application cannot connect if the user’s browser has a proxy server configured. The browser downloads the “JAR” file without any problem, when I give the user name and password I cannot connect to APPX server. Is there any configuration that can solve this problem? -- Main.GerardoLopez - 01 Apr 2009 %COMMENT% -- JoeOrtagus - 04 Mar 2009
This topic: Main
>
APPXAdministrator
>
LaunchingAPPXDesktopClientFromWebPageViaJavaWebstart
Topic revision: r65 - 2012-02-23 - JoeOrtagus
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback