Configuring your Java client for JWS

To enable the IBM® Spectrum Symphony Java™ client application to launch from a web browser, complete the following configuration:

Procedure

  1. Deploy a web service on your Liberty Profile server which must include the client package and the files required to run the client.
    1. Prepare your Java client library to load the required runtime dependencies.
      For 64-bit IBM Spectrum Symphony Java clients, copy the following files to a directory (for example, c:\soamlib64) and pack them into a JAR file (for example, soamlib64.jar).
      File name Location in the IBM Spectrum Symphony installation directory
      • com_platform_log4cxx_097_4.dll
      • icudt55.dll
      • icuin55.dll
      • icuio55.dll
      • icuuc55.dll
      • jnativesoamapi_7.3.2_64.dll
      • libevent.dll
      • libsec.dll
      • msvcp120.dll
      • msvcr120.dll
      • soam_resources_7.3.2.dll
      • soambase.dll
      • libvem360.dll
      • libvem370.dll
      • com_platform_ACE_631_03.dll
      • com_platform_ACE_631_03_SSL.dll
      • libcrypto-1_1-x64.dll
      • libssl-1_1-x64.dll
      dir\soam\7.3.2\w2k3_x64-vc7-psdk\lib64
      • rfa.exe
      dir\4.0\bin
      • egoconsole.dll
      • libiconv.dll
      • rfa.dll
      • sec_ego_default.dll
      • sec_ego_ext_co.dll
      • xml4c_5_8.dll
      dir\4.0\lib
      For example:
      C:\soamlib64>jar cvf soamlib64.jar *.dll *.exe

      For 32-bit IBM Spectrum Symphony Java clients, copy the following files to a directory (for example, c:\soamlib32) and pack them into a JAR file (for example, soamlib32.jar).

      File name Location in the IBM Spectrum Symphony installation directory
      • com_platform_log4cxx_097_4.dll
      • icudt55.dll
      • icuin55.dll
      • icuio55.dll
      • icuuc55.dll
      • jnativesoamapi_7.3.2.dll
      • libevent.dll
      • libsec.dll
      • msvcp120.dll
      • msvcr120.dll
      • soam_resources_7.3.2.dll
      • soambase.dll
      • libvem360.dll
      • libvem370.dll
      • com_platform_ACE_631_03.dll
      • com_platform_ACE_631_03_SSL.dll
      • libcrypto-1_1.dll
      • libssl-1_1.dll
      dir\soam\7.3.2\w2k3_x64-vc7-psdk\lib
      • rfa.exe
      dir\4.0\bin
      • egoconsole.dll
      • libiconv.dll
      • rfa.dll
      • sec_ego_default.dll
      • sec_ego_ext_co.dll
      • xml4c_5_8.dll
      dir\4.0\lib
      For example:
      C:\soamlib32>jar cvf soamlib32.jar *.dll *.exe
    2. Sign the .jar files required to run in JavaWS.
      For 64-bit IBM Spectrum Symphony Java clients, sign:
      • Your Java client
      • soamlib64.jar
      • JavaSoamApi.jar
      For 32-bit IBM Spectrum Symphony Java clients, sign:
      • Your Java client
      • soamlib32.jar
      • JavaSoamApi.jar
    3. Copy the signed files to a directory to be used by your Liberty Profile server (for example, soamclients).
  2. Configure a .jnlp (Java Network Launch Protocol) file to launch the Java client in JavaWS. The .jnlp file defines the client environment for your cluster and includes information such as the location of the package file and the name of the main class for the application.
    Note:
    • Starting from Java 7 update 45 (1.7.0_45), you must prefix each parameter with jnlp. (for example, jnlp.SOAM_ENABLE_JWS). Alternatively, you can sign a JNLP file and avoid prefixing parameters with jnlp..
    • Starting from Java 7 update 51 (1.7.0_51), you must add the directory where the application is hosted (for example, http://IP:port/jwstest/apps/) to the Exception Site List.
    The .jnlp file supports various parameters for IBM Spectrum Symphony. The following supported parameters are required:
    SOAM_ENABLE_JWS
    Enables JavaWS for your Java client.
    EGO_MASTER_LIST
    Specifies the list of primary-candidate hosts in the cluster to which you want to connect.
    EGO_KD_PORT
    Specifies the port number to connect to the IBM Spectrum Symphony cluster.
    EGO_SEC_PLUGIN
    Specifies the security mechanism to use when connecting to the IBM Spectrum Symphony cluster.
    The following supported parameters are optional:
    DDT_WORK_DIR
    Used with direct data transfer to store input/output data temporarily.
    SOAM_DIRECT_DATA_PORT
    Used with direct data transfer. Defines ports for the client to listen for connections from the service.
    SOAM_DIRECT_DATA_ADDRESS
    Used with direct data transfer. Allows a non-default interface on the client host to be specified for communication with the service instance.
    SOAM_DIRECT_DATA_STORAGE
    Used with direct data transfer. Defines whether data resides in client memory or is written to disk. This property is optional.
    EGO_CLIENT_ADDR
    Used with direct data transfer and external task output transfer. Used with firewalls on the client side and the rfa command. If SOAM_DIRECT_DATA_PORT is not defined, IBM Spectrum Symphony uses the value of EGO_CLIENT_ADDR. If neither of these variables are defined, IBM Spectrum Symphony randomly selects a client port to listen on.
    SOAM_COMMON_DATA_CHUNK_SIZE
    Used with common data chunking. Specifies the size of each chunk of common data.
    SOAM_CLIENT_PARALLEL_FETCH_NUM
    Used with external task output transfer (enabled by setting the SOAM_TASK_OUTPUT_TO_FILE_THRESHOLD parameter in the application profile). Specifies the maximum size of the parallel fetching task output file in the client. This variable is optional.
    SOAM_FAM_CONSUMER
    Used with external task output transfer (enabled by setting the SOAM_TASK_OUTPUT_TO_FILE_THRESHOLD parameter in the application profile). Specifies the name of the consumer that starts FAM. This variable is required.
    SOAM_RFA_RETRY_LIMIT
    Used with external task output transfer (enabled by setting the SOAM_TASK_OUTPUT_TO_FILE_THRESHOLD parameter in the application profile). Specifies the maximum number of retries for the rfa command to fetch task output. This variable is optional.
    SOAM_RFA_TIMEOUT
    Used with external task output transfer (enabled by setting the SOAM_TASK_OUTPUT_TO_FILE_THRESHOLD parameter in the application profile). Specifies the duration (in seconds) for the rfa command to retrieve task output. This variable is optional.
    Here is a sample .jnlp file:
    <?xml version="1.0" encoding="utf-8"?>
    <!-- JNLP File -->
    <jnlp spec="1.0+" codebase="http://IP:Port/jwstest/apps" href="jwstest.jnlp">
      <information>
        <title>jwstest</title>
        <vendor>test</vendor>
        <homepage href="jwstest.html"/>
        <description>jws test</description>
        <icon href="images/jwstest.jpg"/>
        <offline-allowed/>
      </information>
      <security>
        <all-permissions/>
      </security>
      <resources>
        <j2se version="1.7+"/>
        <nativelib href="lib/soamlib64.jar"/>
        <jar href="lib/JavaSoamApi.jar"/>
        <jar href="lib/AsyncClient.jar" main="true"/>
        <property name="jnlp.SOAM_ENABLE_JWS" value="Y"/>
        <property name="jnlp.EGO_MASTER_LIST" value="primary_host"/>
        <property name="jnlp.EGO_KD_PORT" value="7870"/>
        <property name="jnlp.EGO_SEC_PLUGIN" value="sec_ego_default"/>
      </resources>
      <application-desc main-class="com.platform.symphony.samples.SampleApp.client.AsyncClient"/>
    </jnlp>
  3. Restart the Liberty Profile server.