Oracle 11g – How to enable native WSDL services

Now the first production release is out…

Check it out: WSDL services via the Oracle Protocol Listener. As mentioned in the documentation of the Oracle XMLDB Developers Guide, to enable the WSDL service:

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);
END;
/

This wil update the xdbconfig.xml file.

To use the WSDL service grant the role XDB_WEBSERVICES to the schema that needs it. This role enables use of Web services over HTTPS; it is required to be able to use Web services.


The service can be used via http://host:port/orawsv and http://host:port/orawsv?wsdl
To quickly register this against the listener use the statement:

SQL> ALTER system register;
 
System altered.

A little bit more resource will come in handy so add some extra shared server, for example, via the following statement that sets the amount to five shared servers:

SQL> ALTER system SET shared_servers = 5;
 
System altered.

Two extra roles are available:

  • XDB_WEBSERVICES_OVER_HTTP – Enable use of Web services over HTTP (not
    just HTTPS).
  • XDB_WEBSERVICES_WITH_PUBLIC – Enable access, using Web services, to
    database objects that are accessible to PUBLIC.

Be aware that access can be restricted via the DBMS_XDB.SETLISTENERLOCALACCESS method, so when in trouble, keep this in mind aswel…

WSDL integration with OWSM (Jinyu Wang (r), Oracle - Oracle Open World 2006)
Click picture to enlarge

The WSDL services can also be better controled/secured via integration with the Oracle Web Service Management(OWSM) section in the Oracle SOA Suite. This way the WS is ready to fit in the Oracle “Fusion” infrastructure.

Enjoy.

:-)

Related Posts: