venerdì, gennaio 18, 2008

Oracle 11g: Native Webservices

Ovvero: finalmente pubblicare una funzionalità come un webservice è solo un problema di configurazione.

Questo post First Tests of 11g Native Web Services descrive come configurare e provare i Native Webservice di Oracle 11g.

Ecco le informazioni essenziali per fare una prova:
  1. Configurare la servlet che gestisce i native webservice (come SYSTEM):

  2. DECLARE
    SERVLET_NAME VARCHAR2(32) := 'orawsv';
    BEGIN
    DBMS_XDB.deleteServletMapping(SERVLET_NAME);
    DBMS_XDB.deleteServlet(SERVLET_NAME);
    DBMS_XDB.addServlet(NAME => SERVLET_NAME,
    LANGUAGE => 'C',
    DISPNAME => 'Oracle Query Web Service',
    DESCRIPT => 'Servlet for issuing queries as a Web Service',
    SCHEMA => 'XDB');
    DBMS_XDB.addServletSecRole(SERVNAME => SERVLET_NAME,
    ROLENAME => 'XDB_WEBSERVICES',
    ROLELINK => 'XDB_WEBSERVICES');
    DBMS_XDB.addServletMapping(PATTERN => '/orawsv/*',
    NAME => SERVLET_NAME);
    dbms_xdb.setHttpPort(8080);
    END;
    /
  3. Abilitare lo user SCOTT all'utilizzo dei Native Webservice (come SYSTEM):

  4. GRANT XDB_WEBSERVICES TO SCOTT;
    GRANT XDB_WEBSERVICES_OVER_HTTP TO SCOTT;
    GRANT XDB_WEBSERVICES_WITH_PUBLIC TO SCOTT;
  5. Creare una funzione che risponderà come un webservice (come SCOTT):

  6. CREATE OR REPLACE FUNCTION empcount
    RETURN NUMBER IS
    emp_count number;
    BEGIN
    SELECT count(*) INTO emp_count FROM emp;
    RETURN emp_count;
    END;
    /
  7. Provare il webservice. Alla URL http://hostname:8080/orawsv/SCOTT/EMPCOUNT?wsdl trovate il WSDL del webservice.

Nessun commento: