public class DBWSModel extends XRServiceModel

PUBLIC: model object for eclipselink-dbws.xml descriptor file. A DBWS (also known as an XRServiceAdapter) requires the following resources:

  • metadata in the form of a descriptor file called eclipselink-dbws.xml in the META-INF/ directory
    (inside a .jar file, as an external 'exploded' directory on the classpath
    or in the WEB-INF/classes/META-INF/ directory inside a .war file).
  • an XML Schema Definition (.xsd) file called eclipselink-dbws-schema.xsd
    located at the root directory of a .jar file, at the root of the first directory on the
    classpath or in the WEB-INF/wsdl/ directory of a .war file
  • an EclipseLink sessions.xml file called eclipselink-dbws-sessions.xml (in the META-INF/ directory)
      the naming convention for the sessions.xml files can be overridden by the
    optional <sessions-file> entry in the eclipselink-dbws.xml descriptor file.
  • EclipseLink metadata in the form of a EclipseLink Project (either deployment XML located
    in the META-INF/ directory or Java classes on the classpath or in the
    WEB-INF/classes directory inside a .war file).
     

    A typical DBWS requires two projects: one to represent the O-R side, the other to represent the O-X side.
    The O-R and O-X Projects metadata must have:
    i) identical case-sensitive Project names:

     <?xml version="1.0" encoding="UTF-8"?>
     <eclipselink:object-persistence version="Eclipse Persistence Services ..."
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:eclipselink="http://xmlns.oracle.com/ias/xsds/eclipselink"
       >
       <eclipselink:name>example</eclipselink:name>
     or
     ...
     import org.eclipse.persistence.sessions.Project;
     public class SomeORProject extends Project {
       public SomeORProject () {
         setName("Example");
         ...
     }
     public class SomeOXProject extends Project {
       public SomeOXProject () {
         setName("Example");
         ...
     }
     
    ii) identical case-sensitive aliases for Descriptors that are common between the projects:
     <eclipselink:class-mapping-descriptor xsi:type="eclipselink:relational-class-mapping-descriptor">
       <eclipselink:class>some.package.SomeClass</eclipselink:class>
       <eclipselink:alias>SomeAlias</eclipselink:alias>
     ...
     <eclipselink:class-mapping-descriptor xsi:type="eclipselink:xml-class-mapping-descriptor">
       <eclipselink:class>some.package.SomeClass</eclipselink:class>
       <eclipselink:alias>SomeAlias</eclipselink:alias>
     
An example eclipselink-dbws.xml descriptor file:
 <?xml version="1.0" encoding="UTF-8"?>
 <dbws
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   >
   <name>example</name>
   <sessions-file>example-dbws-sessions.xml</sessions-file>
   <query>
     <name>countEmployees</name>
     <result>
       <type>xsd:int</type>
       <simple-xml-format>
         <simple-xml-format-tag>employee-info</simple-xml-format-tag>
         <simple-xml-tag>aggregate-info</simple-xml-tag>
       </simple-xml-format>
     </result>
     <sql><![CDATA[select count(*) from EMP]]></sql>
   </query>
   <query>
     <name>findAllEmployees</name>
     <result isCollection="true">
       <type>empType</type>
     </result>
     <sql><![CDATA[select * from EMP]]></sql>
   </query>
 </dbws>
 
Since:
EclipseLink 1.0
  • Constructor Details

    • DBWSModel

      public DBWSModel()