EclipseLink/UserGuide/DBWS/Overview/Design time

From Eclipsepedia

Jump to: navigation, search


EclipseLink DBWS

link="http://wiki.eclipse.org/EclipseLink"
EclipseLink
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source


Creating EclipseLink DBWS Services using the DBWSBuilder utility

The EclipseLink DBWS design-time utility DBWSBuilder is a Java application that processes an EclipseLink DBWS builder XML file to produce a deployable archive (typically a .war file) containing all the required deployment artifacts (WSDL, .xsd schema, web.xml, etc.) for a JAX-WS 2.0 compliant Web Service. There are script files located in the <ECLIPSELINK_HOME>\utils\dbws directory for invoking the DBWSBuilder utility. The scripts ending in .cmd are for Windows use while those that end with .sh are for all other operating systems. Before running the dbwsbuilder.cmd script, please ensure that the following environment variables in the <ECLIPSELINK_HOME>\utils\dbws\setenv.cmd (or setenv.sh file) are set:

  • JAVA_HOME
  • DRIVER_CLASSPATH

DBWSBuilder Command-line arguments

prompt > dbwsbuilder.cmd -builderFile {path_to_dbws_builder.xml} -stageDir  {path_to_stageDir}
-packageAs[:archive_flag - archive, noArchive, ignore] {packager} [additional args]
Available packagers:
    -packageAs:[default=not supported] jdev
    -packageAs:[default=archive] javase [jarFilename]
    -packageAs:[default=archive] wls [warFilename]
    -packageAs:[default=archive] glassfish [warFilename]
    -packageAs:[default=archive] jboss [warFilename]
    -packageAs:[default=archive] war [warFilename]
    -packageAs:[default=archive] was [warFilename]
    -packageAs:[default=not supported] eclipse
Argument Status Description
-builderFile Required path_to_dbws_builder.xml - location of dbws_builder.xml file

If the file does not exist, then a brief message is displayed:

DBWSBuilder unable to locate dbws-builder.xml file c:\foo\bar.xml
-stageDir Required path_to_stageDir - directory to use for staging output

If the directory does not exist, then a brief message is displayed:

DBWSBuilder unable to locate stage directory c:\temp\blah
-packageAs Required packager - type of packager to use to build the deployment archive.
The optional archive_flag allows one to create an 'exploded directory' view of the archive. If the optional [warFilename] is not provided, then the name of the archive is based on the name of the project. If the packager does not exist, then the usage message above is displayed with the list of supported packagers:
  • jdev - generate the deployment files (source only, no .class files) in an 'exploded directory' view compatible with the layout of a JDev project
  • javase - generate a .jar file that can run in 'containerless' mode using the javax.xml.ws.Endpoint API (see the example EclipseLink DBWS Service deployed as a JavaSE 6 'containerless' EndPoint for details).
  • wls - generate a .war file compatible with WebLogic application server (10.3.4 or higher)
  • glassfish - generate a .war file compatible with Glassfish application server (3.0.1 or higher)
  • jboss - generate a .war file compatible with JBoss application server (6.0 or higher)
  • war - generate a .war file (testing only)
  • was - generate a .war file compatible with WebSphere application server (7.0 or higher)
  • eclipse - generate the deployment files (source only, no .class files) in an 'exploded directory' view compatible with the layout of an Eclipse project

</source>

archive_flag Optional The archive_flag by default is set to 'archive' which packages the generated files into a Java archive (typically a .war file). When set to 'noArchive', one can create an 'exploded directory' view of the archive.
additional args Optional The additional arguments are passed to the packager. The IDE packagers (jdev, eclipse) require no additional arguments. The Application server packagers (was, glass fish, jboss, was) can be provided with 1 additional argument: the filename of the archive. If the filename is not provided, then by default the name of the archive is based upon the projectName property in the dbws-builder.xml file

Typical .war file layout:

root of war file
   \---WEB-INF
   |
   |   web.xml
   |
   +---classes
   |   +---META-INF
   |   |       eclipselink-dbws.xml
   |   |       eclipselink-dbws-or.xml
   |   |       eclipselink-dbws-ox.xml
   |   |       eclipselink-dbws-sessions.xml
   |   |
   |   \---_dbws
   |           DBWSProvider.class     -- auto-generated JAX-WS 2.0 Provider
   |           ProviderListener.class -- auto-generated Servlet Listener
   |
   \---wsdl
           eclipselink-dbws-schema.xsd
           eclipselink-dbws.wsdl
           swaref.xsd                 -- optional
EclipseLink DBWS Service .war File Contents
File Description
web.xml The Web application deployment file
(required for deployment as a JAX-WS Web service - see JSR-109 for more details).
eclipselink-dbws.xml The EclipseLink DBWS service descriptor file
(described in the EclipseLink User Guide).
eclipselink-dbws-or.xml The EclipseLink ORM project XML file.
For more information, see Introduction to Relational Projects (ELUG).
eclipselink-dbws-ox.xml The EclipseLink OXM project XML file.
For more information, see Introduction to XML Projects (ELUG).
eclipselink-dbws-sessions.xml The EclipseLink sessions.xml file for the EclipseLink DBWS service.
It contains references to the EclipseLink ORM and OXM project XML files.
For more information, see Introduction to EclipseLink Sessions (ELUG).
eclipselink-dbws-schema.xsd Contains XML type definitions for operation arguments and return types.
The DBWSBuilder utility automatically generates this file from database
metadata to derive element-tag names and types.
eclipselink-dbws.wsdl Contains entries for all operations in the EclipseLink DBWS service.
(required for deployment as a JAX-WS Web service - see JSR-109 for more details).
swaref.xsd (optional) Contains XML type definitions for SOAP attachments.

Note that the files swaref.xsd and web.xml have names and content determined by their roles in Web deployment and cannot be changed.