codestory

Installieren Sie Oracle REST Data Services (ORDS) für Oracle APEX

  1. Was ist Oracle REST Data Services ?
  2. Die Interaktion zwischen Oracle ORDS und Oracle APEX
  3. Download Oracle ORDS
  4.  ORDS für APEX konfigurieren
  5.  ORDS implementieren

1. Was ist Oracle REST Data Services ?

Oracle REST Data Services (ORDS) ist ein Ersatzdienstleistung zur Oracle HTTP server und mod_plsql. Es basiert auf Java EE, bietet die Dienstleistung RESTful und erhöht die Geheimnislevel. Es kann auf WebLogic, Tomcat, Glassfish oder allein durchführen

2. Die Interaktion zwischen Oracle ORDS und Oracle APEX

Normalerweise haben Sie 2 Optionen zur Installation von Oracle APEX.

Die Option 1: Die Konfiguration von Embedded PL/SQL Gateway: Das ist die Maßnahme zur Konfiguration von Oracle APEX, damit es auf Oracle XML DB HTTP Server laufen kann. Es ist ein bereites HTTP wenn Sie Oracle 11g oder die neure installieren.

Die Option 2: Die Installation von Oracle APEX auf einem bestimmten Web-Server wie WebLogic, Tomcat oder Glassfish,...
Der Pfad zum Arbeiten mit Oracle APEX wie folgend
  • http://your-server:8080/apex
Die RESTful Dienstleistung zu benutzen, sollen Sie Oracle ORDS mehr installieren. Sie können auf WebLogic Server, Tomcat, Glassfish,.. oder allein laufen. Oracle ORDS kann direkt Oracle APEX lesen und Oracle HTTP Server ganz ersetzen. Deshalb können Sie die Restful Dienstleistung auf APEX benutzen und das neueste URL zum Arbeiten mit Oracle APEX benutzen
  • http://your-server:8080/ords

3. Download Oracle ORDS

Sie können Oracle ORDS bei ... herunterladen:
Das ist Ergebnis vom Herunterladen

4.  ORDS für APEX konfigurieren

CD nach dem Installationsverzeichnis apex.
Melden Sie in sqlplus als sysdba an
Den Befehl durchführen um REST Service zu konfigurieren
-- Configuring REST Service.


@apex_rest_config.sql
Nachdem der oben Befehl erfolgreich durchgeführt wird, werden die 2 user APEX_LISTENER und APEX_REST_PUBLIC_USER erstellt.
  1. APEX_LISTENER - das Konto zur Abfrage der RESTful Dienstleistungen, die im Oracle APEX archiviert werden
  2. APEX_REST_PUBLIC_USER - Das Konto wird benuzt bei der Aufruf von der Dienstleistungen, die im Oracle APEX archiviert werden
Network Services anschalten
Standardmäßig wird die Network Services in Oracle 11g oder die neure Version ausgeschaltet. Deshalb sollen Sie die Package DBMS_NETWORK_ACL_ADMIN benutzen um die Genehmigung zur Zugang nach der Networksaddresse für den user database APEX_050000 zu geben
Sie sollen den user APEX in database abfragen (query)
Select Username from All_Users where username like 'APEX%';
Den Befehl starten um die Genehmigung zum Zugang nach den Networksaddresse für den user database APEX_050000 zu geben
Declare
   Acl_Path Varchar2(4000);
Begin
   -- Look for the ACL currently assigned to '*' and give APEX_050000
   -- the "connect" privilege if APEX_050000 does not have the privilege yet.
   Select Acl
   Into   Acl_Path
   From   Dba_Network_Acls
   Where  Host = '*'
   And    Lower_Port Is Null
   And    Upper_Port Is Null;
   If Dbms_Network_Acl_Admin.Check_Privilege(Acl_Path
                                            ,'APEX_050000'
                                            ,'connect') Is Null Then
      Dbms_Network_Acl_Admin.Add_Privilege(Acl_Path
                                          ,'APEX_050000'
                                          ,True
                                          ,'connect');
   End If;
Exception
   -- When no ACL has been assigned to '*'.
   When No_Data_Found Then
      Dbms_Network_Acl_Admin.Create_Acl('power_users.xml'
                                       ,'ACL that lets power users to connect to everywhere'
                                       ,'APEX_050000'
                                       ,True
                                       ,'connect');
      Dbms_Network_Acl_Admin.Assign_Acl('power_users.xml'
                                       ,'*');
End;
/

Commit;
Die Verbindungsrecht für den user database APEX_050000 (Oracle 11g) zuweisen:
Declare
   Acl_Path Varchar2(4000);
Begin
   -- Look for the ACL currently assigned to '*' and give APEX_050000
   -- the "connect" privilege if APEX_050000
   --does not have the privilege yet.
   Select Acl
   Into   Acl_Path
   From   Dba_Network_Acls
   Where  Host = '*'
   And    Lower_Port Is Null
   And    Upper_Port Is Null;
   If Dbms_Network_Acl_Admin.Check_Privilege(Acl_Path
                                            ,'APEX_050000'
                                            ,'connect') Is Null Then
      Dbms_Network_Acl_Admin.Add_Privilege(Acl_Path
                                          ,'APEX_050000'
                                          ,True
                                          ,'connect');
   End If;
Exception
   -- When no ACL has been assigned to '*'.
   When No_Data_Found Then
      Dbms_Network_Acl_Admin.Create_Acl('power_users.xml'
                                       ,'ACL that lets power users to connect to everywhere'
                                       ,'APEX_050000'
                                       ,True
                                       ,'connect');
      Dbms_Network_Acl_Admin.Assign_Acl('power_users.xml'
                                       ,'*');
End;
/

Commit;
Die Verbindungsrecht für den user database APEX_050000 (Oracle 12c) zuweisen:
Die Verfahren CREATE_ACL, ASSIGN_ACL, ADD_PRIVILEGE und CHECK_PRIVILEGE in die package DBMS_NETWORK_ACL_ADMIN sind veraltet im Oracle Database 12c. Oracle empfiel Sie APPEND_HOST_ACE zu benutzen
-- Sử dụng cho Oracle 12c.

BEGIN
    DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
        host => '*',
        ace => xs$ace_type(privilege_list => xs$name_list('connect'),
                           principal_name => 'APEX_050000',
                           principal_type => xs_acl.ptype_db));
END;
/

5.  ORDS implementieren

Beachten Sie: Stellen Sie sicher, dass Sie die Java - Version 7 oder neuer installiert haben und die Umgebungsvariable PATH in dem Verzeichnis von Java melden. Sie können die Anleitung der Java-Installation bei ...
Am Ende vom PATH den Pfad zum Verzeichnis bin vom Java einfügen.
;C:\DevPrograms\Java\jdk1.8.0_65\bin
Die heruntergeladete File ords-**.zip in einen Verzeichnis diskomprimieren
Sie können in dem Diskomprimierungsverzeichnis die File ords.war sehen
Den Verzeichnis images im apex in dem Verzeichnis ords kopieren
Jetzt installieren wir Oracle ORDS allein (Auf WebLogic, Tomcat oder einem Web Server nicht implementieren)
CD nach dem Verzeichnis ords:
Zunächst melden Sie in sqlplus als sysdba.
Ihr Oracle APEX läuft auf Oracle XML DB HTTP Server. Sie sollen es durch den Befehl ... ausschalten
--  Disable Oracle APEX on Oracle XML DB HTTP Server.

EXEC DBMS_XDB.SETHTTPPORT(0);


-- Note: You can enable it with command:

EXEC DBMS_XDB.SETHTTPPORT(8080)
sqlplus austreten. und CD nach dem Verzeichnisords:
Den Befehl durchführen
# Run command:

java -jar ords.war

# Or:

java -jar ords.war install
Die Addresse des Gerät, das Databasse enthaltet, eingeben (localhost):
Die Port von Database (standardmäßig ist es 1521):
Service Name oder SID von Database eingeben
Das Passwort für den user database: ORDS_PUBLIC_USER eingeben
Sqlplus fordert die Eingabe der Information von user database mit der Rechts von sysdba. ( sys und danachpassword eingeben).
SQLPlus fragt danach, ob Sie Oracle APEX benutzen oder nicht. Wenn nicht, typen Sie 1 und enter:
Geben Sie das Passwort für den erstellten user APEX_PUBLIC_USER:
Zunächst geben Sie 1 ein um das Password für 2 erstellten user database festzulegen (APEX_LISTENER, APEX_REST_PUBLIC_USER).
Wählen Sie 1 um ORDS allein durchzuführen (Standalone).
Die Konfiguration von ORDS wird erfolgreich gemacht. Schließen Sie das Fenster CMD.
ORDS laufen
Achtung: Sie können den folgenden Befehl um die Gebrauchsanweisung mehr zu lesen
java -jar ords.war help standalone
CD in dem OrdnerORDS und den Befehl durchführen
java -jar ords.war standalone --port 8080 --apex-images C:/DevPrograms/ords/images
Zum ersten Mal fragt es nach der Postion von der Konfigurationsfile
ORDS wird erfolgreich durchgeführt
beachten Sie: Wenn Sie den folgenden Fehler erhalten
Öffnen Sie den Schlüssel für den user APEX_PUBLIC_USER.
Column username format a25;
Column account_status format a25;

-- Query unlocked APEX user.

select username,account_status from dba_users
 where lock_date is not null
 and username like 'APEX%';
Alter user APEX_PUBLIC_USER account unlock;
Die Konfigurationsfile wird nach der Durchführung von ORDS erstellt
Schließen Sie bitte das oben Fenster nicht, Sie können APEX mit den neuen Pfad benutzen.