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.