EclipseLink DBWS can create a Web service that exposes a Stored Procedure (or multiple procedures). Because it is not possible to determine the structure of the returned data from the Stored Procedure's metadata, EclipseLink uses the Simple XML Format schema. The EclipseLink DBWS runtime produces an XML document that is simple and "human-readable."
EclipseLink DBWS supports any combination of IN
, OUT
and IN OUT
arguments. Additionally, EclipseLink also supports procedures in packages that are overloaded (that is, the same name but different parameters).
This example uses the following Stored Procedure:
DROP PROCEDURE TESTECHO; CREATE OR REPLACE PROCEDURE TESTECHO(T IN VARCHAR2, U OUT VARCHAR2) AS BEGIN U := CONCAT(T, '-test'); END;
The DBWSBuilder utility requires a DBWS configuration XML file as input, as shown here:
<?xml version="1.0" encoding="UTF-8"?> <dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <properties> <property name="projectName">testEcho</property> ... database properties </properties> <procedure name="testEcho" procedurePattern="TESTECHO" isSimpleXMLFormat="true" /> </dbws-builder>
Execute the DBWSBuilder
, as shown here:
prompt > dbwsbuilder.cmd -builderFile dbws-builder.xml -stageDir output_directory -packageAs wls testEcho.war
where
dbws-builder.xml
is the DBWS builder configuration XML file above
output_directory
is the output directory for the generated files
-packageAs
specifies the platform on which the web service will be deployed
The generated eclipselink-dbws-schema.xsd
file is the schema for the Simple XML format, as shown here:
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:complexType name="simple-xml-format"> <xsd:sequence> <xsd:any minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
You can customize the simple-xml-format
and simple-xml
tags by setting the appropriate properties on an SQL operation.