Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
EclipseLink/Examples/DBWS/DBWSBuilder using ANT and javac
Contents
DBWSBuilder using ANT
This example illustrates how DBWSBuilder can be invoked from ANT generating all of the required artifacts to the file system, compiling them, and finally packaging them in a web archive that can be deployed to an active WebLogic instance.
File layout for this example:
<example-root> | | build.properties | build.xml | dbws-builder.xml | \---jlib | | eclipselink.jar | eclipselink-dbwsutils.jar | javax.servlet.jar | javax.wsdl.jar | ojdbc6.jar | org.eclipse.persistence.oracleddlparser.jar | \---stage | | (Artifacts will be generated here, most notably simpletable.war) |
To run the DBWS builder in this example, simply type ant
in the example-root directory. The builder packages the generated artifacts into the web archive simpletable.war
, which is placed the the stage
directory. This .war
file can then be deployed to WebLogic.
dbws-builder.xml
Following is the builder XML file used in this example:
<?xml version="1.0" encoding="UTF-8"?> <dbws-builder xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <properties> <property name="projectName">simpletable</property> ... database properties </properties> <table schemaPattern="SCOTT" tableNamePattern="SIMPLETABLE" /> </dbws-builder>
build.xml
Following is the build XML file used for this example:
<?xml version="1.0"?> <project name="simpletable" default="build"> <property file="${basedir}/build.properties"/> <path id="build.path"> <fileset dir="${jlib.dir}" includes="eclipselink.jar eclipselink-dbwsutils.jar org.eclipse.persistence.oracleddlparser.jar javax.wsdl.jar javax.servlet.jar ojdbc6.jar" > </fileset> </path> <target name="build"> <java classname="org.eclipse.persistence.tools.dbws.DBWSBuilder" fork="true" classpathRef="build.path" > <arg line="-builderFile ${dbws.builder.file} -stageDir ${stage.dir} -packageAs ${server.platform} ${ant.project.name}.war"/> </java> </target> </project>
build.properties
Following is the build properties file used for this example:
custom = true build.sysclasspath=ignore stage.dir=${basedir}/stage jlib.dir=${basedir}/jlib server.platform=wls dbws.builder.file=dbws-builder.xml
DBWSBuilder using javac
This example illustrates how DBWSBuilder
can be invoked using javac
generating all of the required artifacts to the file system, compiling them, and finally packaging them in a web archive that can be deployed to an active WebLogic instance.
A given builder XML file is parsed by the OXM Project org.eclipse.persistence.tools.dbws.DBWSBuilderModelProject producing model objects that represent properties
, table
and procedure
operations. The public class org.eclipse.persistence.tools.dbws.DBWSBuilder can also be populated programmatically through property setters (i.e. setDriver()
, setUrl()
, etc.) and the operation setter addOperation(OperationModel operation)
.
The following code snippet illustrates how the DBWSBuilder can be configured programmatically.
DBWSBuilder builder = new DBWSBuilder(); // set properties builder.setProjectName("simpleSP"); builder.setLogLevel("fine"); builder.setUsername("SCOTT"); builder.setPassword("TIGER"); builder.setUrl("jdbc:oracle:thin:@localhost:1521:ORCL"); builder.setDriver("oracle.jdbc.OracleDriver"); builder.setPlatformClassname("org.eclipse.persistence.platform.database.oracle.Oracle11Platform"); // set table and procedure operations ProcedureOperationModel procOpModel = new ProcedureOperationModel(); procOpModel.setName("VarcharTest"); procOpModel.setCatalogPattern("TOPLEVEL"); procOpModel.setProcedurePattern("VarcharSP"); procOpModel.setReturnType("xsd:int"); builder.addOperation(procOpModel); TableOperationModel tableOpModel = new TableOperationModel(); tableOpModel.setSchemaPattern("%"); tableOpModel.setTablePattern("SIMPLESP"); // add nested procedure operation procOpModel = new ProcedureOperationModel(); procOpModel.setName("GetAllTest"); procOpModel.setCatalogPattern("TOPLEVEL"); procOpModel.setProcedurePattern("GetAll"); procOpModel.setIsCollection(true); procOpModel.setReturnType("simplespType"); tableOpModel.addOperation(procOpModel); builder.addOperation(tableOpModel); // setup the web service packager XRPackager xrPackager = new JSR109WebServicePackager(); xrPackager.setDBWSBuilder(builder); builder.setPackager(xrPackager); xrPackager.setSessionsFileName(builder.getSessionsFileName()); xrPackager.setStageDir(new File(".")); // generate the web archive builder.start();