Understanding and Implementing Java Web Start(JWS) in Oracle Apps/EBS 12.2.10


Java Web Start provides a browser-independent architecture for deploying Java technology-based applications to the client desktop. With Java Web Start, users can launch a Java application by clicking a link in a web page. The link points to a Java Network Launch Protocol (JNLP) file, which instructs Java Web Start software to download, cache, and run the application. This way, users can download and launch applications without going through additional installation procedures.

Java Web Start software is installed as part of the Java Runtime Environment (JRE) software. Users do not have to install Java Web Start software separately or perform additional tasks to use Java Web Start applications.


E-Business Suite's Java-based content required a browser that supports Netscape Plug-in Application Programming Interface (NPAPI) plug-ins.

Some browsers are phasing out NPAPI plug-in support.  Some browsers were released without NPAPI plug-in support.  This prevents the Java plug-in from working.

With the release of Java Web Start, E-Business Suite 12.1 and 12.2 users can launch Java-based content (e.g. Oracle Forms) from browsers that do not support Java plug-ins via NPAPI.  Java Web Start in EBS works with:

  • Microsoft Internet Explorer
  • Microsoft Edge
  • Firefox Rapid Release (32-bit and 64-bit)
  • Firefox Extended Support Release (32-bit and 64-bit)
  • Google Chrome




Only one instance per Java applet can be running on the client PC. Multiple instances of a specific Java applet cannot be launched, even when launched from different sessions or browsers. The following message will be displayed when opening a second Java applet instance:




Implementation Steps (Always Refer to Latest Oracle Document to see if new patches are released)

1) Install JRE 8 Update 181 or later on the client/desktop for end-users.

2) Minimum Prerequisites
The following lists the minimum code levels required to install Java Web Start on Oracle E-Business Suite Release 12.2.

Oracle E-Business Suite Release 12.2.3
R12.AD.C.Delta.8
R12.TXK.C.Delta.8
R12.ATG_PF.C.Delta.6

3) I have already done both 1 and 2 Steps. My lab environment is R12.2.10 and DB 12.1.0.2

4) Check JRE version in EBS in my LAB machine

[applmgr@funebs122 ~]$ java -version
java version "1.7.0_85"
Java(TM) SE Runtime Environment (build 1.7.0_85-b15)
Java HotSpot(TM) Server VM (build 24.85-b06, mixed mode)


All patches that I will be applying are kept on Patch Top of EBS. I assume you would be having knowledge of applying patches using adop, opatch utilities. Also you should be aware how to edit context file and run autoconfig.Always go through the readme of all patches to be aware of action plans.




5) Oracle Forms 10g Technology Patch for Oracle E-Business Suite Release 12.2

Patch 25441839 - Merge Request On Top Of 10.1.2.3.2PSU For Bugs 24946444, 24620875, 25355211 is the minimum required Oracle Forms 10g overlay patch that adds support for Java Web Start to Oracle Forms as part of the Oracle E-Business Suite technology stack.

Source Run file system environment and start a new patching cycle.

[applmgr@funebs122 ~]$ . EBSapps.env run

  E-Business Suite Environment Information
  ----------------------------------------
  RUN File System           : /oraapps122/APPS/FUAT/fs1/EBSapps/appl
  PATCH File System         : /oraapps122/APPS/FUAT/fs2/EBSapps/appl
  Non-Editioned File System : /oraapps122/APPS/FUAT/fs_ne

  DB Host: funebs122.lab  Service/SID: FUAT

  Sourcing the RUN File System ...

[applmgr@funebs122 ~]$ adop phase=prepare


Now to apply 10g patch 

Source Patch Environment

[applmgr@funebs122 ~]$ . EBSapps.env patch

  E-Business Suite Environment Information
  ----------------------------------------
  RUN File System           : /oraapps122/APPS/FUAT/fs1/EBSapps/appl
  PATCH File System         : /oraapps122/APPS/FUAT/fs2/EBSapps/appl
  Non-Editioned File System : /oraapps122/APPS/FUAT/fs_ne


  DB Host: funebs122.lab  Service/SID: FUAT


  Sourcing the PATCH File System ...

Set Path to OPatch

[applmgr@funebs122 ~]$ export PATH=$ORACLE_HOME/OPatch:$PATH

Go to Patch directory and unzip 10g patches

-rw-r--r--. 1 applmgr oinstall 5500038 Feb  4 17:35 p32922089_101232_LINUX.zip
-rw-r--r--. 1 applmgr oinstall 5482278 Feb  4 17:35 p25441839_101232_LINUX.zip

Unzip both 

Start Applying Both

[applmgr@funebs122 patch]$ cd 25441839
[applmgr@funebs122 25441839]$ opatch apply

Oracle Interim Patch Installer version 1.0.0.0.64
Copyright (c) 2011 Oracle Corporation. All Rights Reserved..

Oracle recommends you to use the latest OPatch version
and read the OPatch documentation available in the OPatch/docs
directory for usage. For information about the latest OPatch and
other support-related issues, refer to document ID 293369.1
available on My Oracle Support (https://myoraclesupport.oracle.com)

Oracle Home           : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2
Oracle Home Inventory : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/inventory
Central Inventory     : /oraapps122/oracle/oraInventory
   from               : /etc/oraInst.loc
OUI location          : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/oui
OUI shared library    : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/oui/lib/linux/liboraInstaller.so
Java location         : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/jdk/jre/bin/java
Log file location     : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/<patch ID>/*.log

Creating log file "/oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/25441839/Apply_25441839_02-04-2022_20-26-56.log"

Invoking fuser to check for active processes.


Patch "25441839" overlays " 14825718 ". Conflict check between them is skipped.


Subset patches:  8557019, 18620223, 19434967,

The fixes for Patch 8557019, 18620223, 19434967,  are included in the patch currently
being installed (25441839).  OPatch will roll back the subset patch(es) and
install the new patch (25441839).


Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name:

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y
Oracle Configuration Manager has been installed but not configured. OCM enables
Oracle to provide superior, proactive support for our customers. Oracle
strongly recommends customers configure OCM. To complete the configuration of
OCM, refer to the OCM Installation and Administration Guide
(http://www.oracle.com/technology/documentation/ocm.html).
Backing up comps.xml ...

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.


Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2)
Is this system ready for updating?
Please respond Y|N >
Y
Rolling back patch 8557019...

Creating log file "/oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/8557019/RollBack_8557019_02-04-2022_20-38-34.log"

Rolling back with all-node mode.
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.

Oracle instances have been shut down, proceeding with auto-rollback.

Removing patch 8557019...

Restoring archive files...

Running make for target  install.


Updating inventory...
Rolling back patch 18620223...

Creating log file "/oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/18620223/RollBack_18620223_02-04-2022_20-39-11.log"

Rolling back with all-node mode.
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.

Oracle instances have been shut down, proceeding with auto-rollback.

Removing patch 18620223...

Restoring archive files...

Running make for target  sharedlib.

Running make for target  install.


Updating inventory...
Rolling back patch 19434967...

Creating log file "/oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/19434967/RollBack_19434967_02-04-2022_20-40-15.log"

Rolling back with all-node mode.
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.

Oracle instances have been shut down, proceeding with auto-rollback.

Removing patch 19434967...

Restoring archive files...

Restoring copied files...

Running make for target  sharedlib.

Running make for target  install.

Running make for target  sharedlibs.


Updating inventory...

Back to applying patch 25441839...

Backing up 2nd copy of comps.xml ...

Applying patch 25441839...

Patching archive files...

Patching copy files...

Running make for target sharedlibs.

Running make for target sharedlib.

Running make for target install.



Inventory is good and does not have any dangling patches.


Updating inventory...

Verifying patch...
Backing up comps.xml ...


OPatch succeeded.


Second Patch Now:

[applmgr@funebs122 patch]$ cd 32922089
[applmgr@funebs122 32922089]$ opatch apply

Oracle Interim Patch Installer version 1.0.0.0.64
Copyright (c) 2011 Oracle Corporation. All Rights Reserved..

Oracle recommends you to use the latest OPatch version
and read the OPatch documentation available in the OPatch/docs
directory for usage. For information about the latest OPatch and
other support-related issues, refer to document ID 293369.1
available on My Oracle Support (https://myoraclesupport.oracle.com)

Oracle Home           : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2
Oracle Home Inventory : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/inventory
Central Inventory     : /oraapps122/oracle/oraInventory
   from               : /etc/oraInst.loc
OUI location          : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/oui
OUI shared library    : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/oui/lib/linux/liboraInstaller.so
Java location         : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/jdk/jre/bin/java
Log file location     : /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/<patch ID>/*.log

Creating log file "/oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/32922089/Apply_32922089_02-04-2022_20-50-26.log"

Invoking fuser to check for active processes.


Patch "32922089" overlays " 14825718 ". Conflict check between them is skipped.


Subset patches:  25441839,

The fixes for Patch 25441839,  are included in the patch currently
being installed (32922089).  OPatch will roll back the subset patch(es) and
install the new patch (32922089).


Provide your email address to be informed of security issues, install and
initiate Oracle Configuration Manager. Easier for you if you use your My
Oracle Support Email address/User Name.
Visit http://www.oracle.com/support/policies.html for details.
Email address/User Name:

You have not provided an email address for notification of security issues.
Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]:  Y
Oracle Configuration Manager has been installed but not configured. OCM enables
Oracle to provide superior, proactive support for our customers. Oracle
strongly recommends customers configure OCM. To complete the configuration of
OCM, refer to the OCM Installation and Administration Guide
(http://www.oracle.com/technology/documentation/ocm.html).
Backing up comps.xml ...

OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.


Please shut down Oracle instances running out of this ORACLE_HOME
(Oracle Home = /oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2)
Is this system ready for updating?
Please respond Y|N >
Y
Rolling back patch 25441839...

Creating log file "/oraapps122/APPS/FUAT/fs2/EBSapps/10.1.2/.patch_storage/25441839/RollBack_25441839_02-04-2022_20-52-15.log"

Rolling back with all-node mode.
OPatch detected non-cluster Oracle Home from the inventory and will patch the local system only.

Oracle instances have been shut down, proceeding with auto-rollback.

Removing patch 25441839...

Restoring archive files...

Restoring copied files...

Running make for target  sharedlibs.

Running make for target  sharedlib.

Running make for target  install.


Updating inventory...

Back to applying patch 32922089...

Backing up 2nd copy of comps.xml ...

Applying patch 32922089...

Patching archive files...

Patching copy files...

Running make for target sharedlibs.

Running make for target sharedlib.

Running make for target install.



Inventory is good and does not have any dangling patches.


Updating inventory...

Verifying patch...
Backing up comps.xml ...


OPatch succeeded.

6) Application Technology Patches for Oracle E-Business Suite Release 12.2

The following table lists all required application technology patches. These 3 patches I will be applying.

Application Technology Patch DescriptionPatch Number
AD: Add Java Web Start support to Oracle E-Business SuitePatch 24498616:R12.AD.C
TXK: Add Java Web Start support to Oracle E-Business SuitePatch 25449925:R12.TXK.C
Oracle E-Business Suite Java Applets launching with Java Web StartPatch 25380324:R12.FND.C


As the 10g application patches are applied, let move on to EBS patches.

Use same patching cycle which was open earlier and set run file system

. EBSapps run
cd $PATCH_TOP

Unzip below patches
-rw-r--r--. 1 applmgr oinstall  912200 Feb  4 17:35 p32902510_R12.FND.C_R12_GENERIC.zip
-rw-r--r--. 1 applmgr oinstall  892801 Feb  4 17:35 p25380324_R12.FND.C_R12_GENERIC.zip
-rw-r--r--. 1 applmgr oinstall  110912 Feb  4 17:35 p25449925_R12.TXK.C_R12_GENERIC.zip
-rw-r--r--. 1 applmgr oinstall  277393 Feb  4 17:35 p24498616_R12.AD.C_R12_GENERIC.zip

[applmgr@funebs122 patch]$ adop phase=apply patches=24498616,25449925,25380324,32902510 merge=yes

Enter the APPS password:
Enter the SYSTEM password:
Enter the WLSADMIN password:

Run adadmin to regenerate JAR files with force option.
. EBSapps.env patch
$ adadmin

Navigation: Generate Applications Files Generate product JAR files
Regenerate JAR files with FORCE option set to Yes

Do you wish to force regeneration of all jar files? [No] ? Yes


Complete the online patch cycle.
. EBSapps.env run

$ adop phase=finalize,cutover mtrestart=no

Perform a cleanup of the online patch cycle.
$ adop phase=cleanup


Product Specific Patches for the EBS R12.2 (These I will not be applying as I am doing on my Lab Environment, but Real Time Environment You have to apply)

ProductFeaturePatch Number
Oracle WorkflowStatus Diagram; Notification signing with Digital SignaturePatch 28713780:R12.OWF.C
Oracle ScriptingScript AuthorPatch 23475123:R12.IES.C
Oracle Customers OnlineParty RelationshipsPatch 23280764:R12.IMC.C
Oracle General LedgerAccount Hierarchy ManagerPatch 23645622:R12.GL.C
Oracle SourcingAuction MonitorPatch 23575933:R12.PON.D
Oracle Installed BaseVisualizer AppletPatch 22221603:R12.CSI.C
Oracle Advanced Supply Chain PlanningPlan Editor (PS/SNO)Patch 23586286:R12.MSC.C
Oracle Process ManufacturingRecipe DesignerPatch 24833534:R12.GMD.C


7) Required Patches for Multiple Forms Session Support Using Java Web Start (I will not apply These in my lab Environment)

For R12.2

Application Technology Patch DescriptionPatch Number
JWS: Add System Property To forms_jnlp_tmp for Firefox on macOSPatch 28700057:R12.TXK.C
Oracle E-Business Suite Java Applets Launching with Java Web Start Release 2Patch 29058008:R12.FND.C
JWS: New Preference To Indicate Launch of New Forms Session


8)  Required Patches for Compatibility with JRE 8 Update 291 and Later
 
 if your client JRE version is some required compatibility patches to use JRE 8 Update 291 and later with Oracle E-Business Suite when using Java Web Start to run Java content on the client.

  • Apply Oracle Forms 10g Technology Patch 32922089--Applied along  Step 5
  • Apply Applications Technology Patch 32902510:R12.FND.C JWS and JRE (8u291 and later) Compatibility Patch- Applied along step 6
I will apply these as they will be needed in my EBS as my client JRE version is as below.


9)  Configuring and Enabling Java Web Start

The following two launch methods are available:

  • Java Plug-in: The Java Plug-in runs within the web browser memory space. Browsers need to support the NPAPI protocol to run Java applets using the Java Plug-in. It remains the default configuration after applying the Java Web Start patches.
  • Java Web Start: Java applets launch as Java Web Start applications and these run in their own restricted environment, known as a sandbox. It is launched from a web browser, but once it runs, it does not have any dependency on the web browser.

Context File Variable

VariableDescriptionDefault Value
s_forms_launch_method

Enable Java Web Start or Java Plug-in.

Possible values:

  • browser - use Java Plug-in
  • jws - use Java Web Start
browser

Profile Options

Profile Option/Internal NameDescriptionDefault Value
Enable Java Web Start /
FND_ENABLE_JAVA_WEB_START
Use Java Web Start to launch the Forms application and Java applets.
Possible values:
Yes - Use Java Web Start
No - Use Java Plug-in
No
ICX: Forms Launcher /
ICX_FORMS_LAUNCHER
Possible values:
Site level default: <s_webentryurlprotocol>://<s_webentryhost>.<s_webentrydomain>:<s_active_webport>/forms/frmservlet
Java Plug-in: <s_webentryurlprotocol>://<s_webentryhost>.<s_webentrydomain>:<s_active_webport>/forms/frmservlet?config=browserMode
Java Web Start: <s_webentryurlprotocol>://<s_webentryhost>.<s_webentrydomain>:<s_active_webport>/forms/frmservlet?config=jws
<s_webentryurlprotocol>:/
/<s_webentryhost>.
<s_webentrydomain>:

<s_active_webport>/
forms/frmservlet

Script to update. these values from backend

SQL> DECLARE
stat boolean;
BEGIN
dbms_output.disable;
dbms_output.enable(100000);
stat := FND_PROFILE.SAVE('FND_ENABLE_JAVA_WEB_START', 'YES', 'SITE');
IF stat THEN
    dbms_output.put_line( 'Stat = TRUE - profile updated' );
ELSE
    dbms_output.put_line( 'Stat = FALSE - profile NOT updated' );
END IF;
commit;
END;

SQL> DECLARE
stat boolean;
BEGIN
dbms_output.disable;
dbms_output.enable(100000);
stat := FND_PROFILE.SAVE('ICX_FORMS_LAUNCHER', 'http://foaerp.training:8000/forms/frmservlet?config=jws', 'SITE');
IF stat THEN
    dbms_output.put_line( 'Stat = TRUE - profile updated' );
ELSE
    dbms_output.put_line( 'Stat = FALSE - profile NOT updated' );
END IF;
commit;
END;

commit;

The profile options 'Enable Java Web Start' and 'ICX: Forms Launcher' are automatically set by AutoConfig at the site level and should only be set at the user level when it is required to override the default configuration.

10)Enabling Java Web Start

The previously described environment settings provide full control of how the Forms application and regular Java applets in Oracle E-Business Suite are launched. The environment can use either Java Web Start or the Java Plug-in for the whole environment, or a combination of both when configured accordingly at the user level.

The following configuration options are available:

Option 1: Set Java Web Start as the default for all application users
Option 2: Set Java Plug-in as the default and Java Web Start for specific application users
Option 3: Set Java Web Start as the default and Java Plug-in for specific application users



I will be doing for all and perform option 1 as below  


Follow these instructions to enable Java Web Start in Oracle E-Business Suite:

Update the context file 
Change the value of OA_VAR for s_forms_launch_method from browser to jws.



Save Context File

Stop all application tier services.
$ sh $ADMIN_SCRIPTS_HOME/adstpall.sh
Run AutoConfig on the application tier.
cd  $ADMIN_SCRIPTS_HOME
[applmgr@funebs122 scripts]$ adautocfg.sh
Enter the APPS user password:

The log file for this session is located at: /oraapps122/APPS/FUAT/fs2/inst/apps/FUAT_funebs122/admin/log/02050030/adconfig.log


wlsDomainName: EBS_domain
WLS Domain Name is VALID.
AutoConfig is configuring the Applications environment...

AutoConfig will consider the custom templates if present.
        Using CONFIG_HOME location     : /oraapps122/APPS/FUAT/fs2/inst/apps/FUAT_funebs122
        Classpath                   : /oraapps122/APPS/FUAT/fs2/FMW_Home/Oracle_EBS-app1/shared-libs/ebs-appsborg/WEB-INF/lib/ebsAppsborgManifest.jar:/oraapps122/APPS/FUAT/fs2/EBSapps/comn/java/classes

        Using Context file          : /oraapps122/APPS/FUAT/fs2/inst/apps/FUAT_funebs122/appl/admin/FUAT_funebs122.xml

Context Value Management will now update the Context file

        Updating Context file...COMPLETED

        Attempting upload of Context file and templates to database...COMPLETED

Configuring templates from all of the product tops...
        Configuring AD_TOP........COMPLETED
        Configuring FND_TOP.......COMPLETED
        Configuring ICX_TOP.......COMPLETED
        Configuring MSC_TOP.......COMPLETED
        Configuring IEO_TOP.......COMPLETED
        Configuring BIS_TOP.......COMPLETED
        Configuring CZ_TOP........COMPLETED
        Configuring SHT_TOP.......COMPLETED
        Configuring AMS_TOP.......COMPLETED
        Configuring CCT_TOP.......COMPLETED
        Configuring WSH_TOP.......COMPLETED
        Configuring CLN_TOP.......COMPLETED
        Configuring OKE_TOP.......COMPLETED
        Configuring OKL_TOP.......COMPLETED
        Configuring OKS_TOP.......COMPLETED
        Configuring CSF_TOP.......COMPLETED
        Configuring IBY_TOP.......COMPLETED
        Configuring JTF_TOP.......COMPLETED
        Configuring MWA_TOP.......COMPLETED
        Configuring CN_TOP........COMPLETED
        Configuring CSI_TOP.......COMPLETED
        Configuring WIP_TOP.......COMPLETED
        Configuring CSE_TOP.......COMPLETED
        Configuring EAM_TOP.......COMPLETED
        Configuring GMF_TOP.......COMPLETED
        Configuring PON_TOP.......COMPLETED
        Configuring FTE_TOP.......COMPLETED
        Configuring ONT_TOP.......COMPLETED
        Configuring AR_TOP........COMPLETED
        Configuring AHL_TOP.......COMPLETED
        Configuring IES_TOP.......COMPLETED
        Configuring OZF_TOP.......COMPLETED
        Configuring CSD_TOP.......COMPLETED
        Configuring IGC_TOP.......COMPLETED

AutoConfig completed successfully.

Start all application tier services.
$ sh $ADMIN_SCRIPTS_HOME/adstrtal.sh

Validate the profiles being updated automatically related to jws 


Synchronize the patch file system with the new run file system.
$ adop phase=fs_clone


11)Open In Edge/Chrome (If you are using any other Browser setting might differ, Please refer oracle doc)
Allow edge to mark the jnlp file as safe

Validate the EBS forms now.



This completes our lab exercise for JWS implementation.


Important Note, for MacOS more patches will be required, Refer Oracle Document.

References

Using Java Web Start with Oracle E-Business Suite (Doc ID 2188898.1)




If you like please follow and comment