Deploy Oracle APEX on weblogic

1- Make sure you do have Java installed on your machine ( if not , then download and install it from here https://www.oracle.com/java/technologies/downloads/#java8)


2- Download Weblogic from (https://www.oracle.com/middleware/technologies/fusionmiddleware-downloads.html)


3- Open CMD , change your current directory to this path 

~~~

CD C:\Program Files\Java\jdk1.8.0_152\bin\

C:\Program Files\Java\jdk1.8.0_152\bin\java -jar C:\fmw_14.1.1.0.0_wls_lite_Disk1_1of1\fmw_14.1.1.0.0_wls_lite_generic.jar

~~~

4- Follow onscreen steps until you finish installation


5-Once ins finished , Create new domain wil automatically appears if not , you can launch it from (C:\oracle\Middleware\Oracle_Home\oracle_common\common\bin\config.cmd)


6- Change domain name or keep it base_domain

7- choose Create Domain Using Product Templates

8- Next choose your credentials that will use to login later

user name : weblogic

password: Apex_123456

9-Click next , make sure 

Domain Mode : Development

JDK : using the same path you used above (by default it's checked)



10-in Advanced configuration , select Administrative Server only, then next


11- in Administration Server , you can change server name (to my_server eg)


12-Ince you arrived  Configuration summary , click create and you're done.


13- To login to the weblogic , you must run it first

14- Go to this path (C:\oracle\Middleware\Oracle_Home\user_projects\domains\smart\startWebLogic.cmd) where you installed weblogic

15- wait until it''s running

16- Go to http://localhost:7001/console , enter your credentials


17-Download ORDS from (https://www.oracle.com/database/technologies/appdev/rest-data-services-downloads.html)

18- extract to C:\oracle\Middleware\Oracle_Home\ords_wl

19-Install ORDS 

~~~

CD C:\Program Files\Java\jdk1.8.0_152\bin\

C:\Program Files\Java\jdk1.8.0_152\bin\java -jar C:\oracle\Middleware\Oracle_Home\ords_wl\ords.war install


#Don't start in standalone

~~~

20- copy images folder from APEX folder to ords_wl

21-

~~~~

 C:\oracle\Middleware\Oracle_Home\ords_wl\ords.war static C:\oracle\Middleware\Oracle_Home\ords_wl\images

~~~

###Note an i.war file will be generated move it to ords_wl folder 

22-Goto http://localhost:7001/console , enter your credentials

23- on Left panel , click Deployments

24-On main page click install , then click localhost , and browse until you see ords.war

25-select ords.war  then next

26-choose Install this deployment as an application , next

27-choose custom Roles , next

28-Yes, take me to the deployment's configuration screen.

29- just click save

30-on Left panel , click Deployments 

31-select i.war  then next

32-choose Install this deployment as an application , next

33-choose custom Roles , next

34-Yes, take me to the deployment's configuration screen.

35- just click save

36- now go to http:/localhost:7001/ords

37- to change listen port from 7001 to 80

37-A - Login to the console

37-B - on left  click Servers 

37-C - on main page click the server name my_server

37-D - change port from 7001 to 80 , save

37-E - your apex url now is localhost/ords , you're done !


Note : you may face 503 error after running apex :

ORDS was unable to make a connection to the database. This can occur if the database is unavailable, the maximum number of sessions has been reached or the pool is not correctly configured. The connection pool named: |apex|| had the following error(s): ORA-28001: the password has expired

This is because of expired password , just change it as follows :

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

alter user APEX_PUBLIC_USER         identified by Apex_1234 account unlock;

alter user APEX_LISTENER            identified by Apex_1234 account unlock;

alter user APEX_REST_PUBLIC_USER    identified by Apex_1234 account unlock;

alter user ORDS_PUBLIC_USER         identified by Apex_1234 account unlock;   

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Thanks to eng. Hesham Abu Elenain  ,this script was written based on his video 

Youtube channel : https://www.youtube.com/channel/UCWqY-RftJ0X4Y3CTR30V1Cg

video url : https://youtu.be/xVe2DG-aAR4

Calling https from db

To invoke web service from oracle database is a bit complicated.

From user : HR ,  we're going to  invoke a web service from https://www.oracle.com .

Here are the steps to connect your oracle db to ssl websites :

1-Add your site to the ACL  :

login as sysdba : 

DECLARE
  ACL_PATH  VARCHAR2(4000);
BEGIN
  -- Look for the ACL currently assigned to 'localhost' and give APEX_050100
  SELECT ACL INTO ACL_PATH FROM DBA_NETWORK_ACLS
   WHERE HOST = 'localhost' AND LOWER_PORT IS NULL AND UPPER_PORT IS NULL;
   
  IF DBMS_NETWORK_ACL_ADMIN.CHECK_PRIVILEGE(ACL_PATH, 'HR',
     'connect') IS NULL THEN
      DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE(ACL_PATH,
     'HR', TRUE, 'connect');
  END IF;
  
EXCEPTION
  -- When no ACL has been assigned to 'localhost'.
  WHEN NO_DATA_FOUND THEN
  DBMS_NETWORK_ACL_ADMIN.CREATE_ACL('local-access-users.xml',
    'ACL that lets users to connect to localhost',
    'HR', TRUE, 'connect');
  DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('local-access-users.xml','localhost');
END;
/
COMMIT;
--where
---------HR : the user will consume webservice
---------*.oracle.com : site we'll call

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE (
        HOST   => '*.oracle.com',
        ace    =>
            xs$ace_type (privilege_list   => xs$name_list ('connect'),
                         principal_name   => 'HR',
                         principal_type   => xs_acl.ptype_db));
END;

COMMIT;

2-Modify the SQLNET.ORA and add the wallet location : 
wallet_location =source =(method = file)(method_data = (directory =c:\oracle\db_home\wallet\https_wallet)))

3- Download certificate files using firefox browser , you'll download two crt files  

4-Create empty wallet using Orapki tool :

5-Create Empty Wallet

orapki wallet create -wallet C:\oracle\db_home\wallet\https_wallet -pwd oracle123 -auto_login


6- Add first Certificate to Wallet

orapki wallet add -wallet C:\oracle\db_home\wallet\https_wallet  -cert 

C:\oracle\db_home\wallet\https_wallet\DigiCertTLS.crt -trusted_cert -pwd oracle123 


7- Add second Certificate to Wallet

orapki wallet add -wallet C:\oracle\db_home\wallet\https_wallet  -cert C:\oracle\db_home\wallet\https_wallet\DigiCertGlobalRootCA.crt -trusted_cert -pwd oracle123 

8- test your webservice now !



Remove unused Layouts in Oracle Apex

 Tables used : APEX_XXXXXXX.WWV_FLOW_REPORT_LAYOUTS APEX_XXXXXXX.WWV_FLOW_SHARED_QUERIES use the following query to delete unused Layouts. ...