In a comment to my posting Deploy task bug in oc4j 10.1.3 dp4, art_usa asked for some help deploying to oc4j using ant. The following example works for me. First the Ant build.xml file itself:
<?xml version="1.0" encoding="windows-1252" ?>
<project default="all" xmlns:oracle="antlib:oracle"
xmlns="antlib:org.apache.tools.ant"
xmlns:ivy="antlib:fr.jayasoft.ivy.ant">
<property file="build.properties"/>
<!--
============================================================================
== properties
============================================================================
-->
<!-- directories -->
<property name="src.dir" value="src"/>
<property name="classes.dir" value="classes"/>
<property name="log.dir" value="log"/>
<property name="web.dir" value="public_html"/>
<property name="deploy.dir" value="deploy"/>
<property name="doc.dir" value="doc"/>
<!-- deliverables -->
<property name="webjar.file" value="${app.name}-web.jar"/>
<property name="war.file" value="${app.name}-web.war"/>
<property name="ejbjar.file" value="${app.name}-ejb.jar"/>
<property name="ear.file" value="${app.name}.ear"/>
<!--
============================================================================
== class path
============================================================================
-->
<path id="class.path">
<fileset dir="lib">
<include name="**/*.jar"/>
</fileset>
<pathelement path="${classes.dir}"/>
</path>
<!--
============================================================================
== init
============================================================================
-->
<target name="init">
<tstamp/>
<mkdir dir="${log.dir}"/>
<mkdir dir="${classes.dir}"/>
</target>
<!--
============================================================================
== compile
============================================================================
-->
<target name="compile" depends="init">
<javac srcdir="${src.dir}" destdir="${classes.dir}"
classpathref="class.path"/>
<copy todir="${classes.dir}">
<fileset dir="${src.dir}">
<include name="**/*.xml"/>
<include name="**/*.properties"/>
</fileset>
</copy>
</target>
<!--
============================================================================
== war
============================================================================
-->
<target name="war" depends="compile">
<war destfile="${deploy.dir}/${war.file}" webxml="${web.dir}/WEB-INF/web.xml">
<fileset dir="${classes.dir}">
<include name="**/*.class"/>
<exclude name="test/**/*.class"/>
</fileset>
<fileset dir="${web.dir}">
<include name="**/*.jspx"/>
<include name="**/*.html"/>
<include name="WEB-INF/*.xml"/>
</fileset>
<lib dir="lib">
<exclude name="ivy-1.1.jar"/>
<exclude name="ejb.jar"/>
<exclude name="ejb30.jar"/>
<exclude name="junit.jar"/>
<exclude name="oc4jclient.jar"/>
</lib>
</war>
</target>
<!--
============================================================================
== ejb jar
============================================================================
-->
<target name="ejb" depends="compile">
<jar destfile="${deploy.dir}/${ejbjar.file}">
<fileset dir="${classes.dir}">
<include name="**/model/**/*.class"/>
<exclude name="test/**/*.class"/>
</fileset>
</jar>
</target>
<!--
============================================================================
== Ear
============================================================================
-->
<target name="ear" depends="war,ejb">
<ear destfile="${deploy.dir}/${ear.file}"
appxml="${classes.dir}/META-INF/application.xml">
<fileset dir="${deploy.dir}/" includes="${war.file}"/>
<fileset dir="${deploy.dir}/" includes="${ejbjar.file}"/>
</ear>
</target>
<!--
============================================================================
== deploy
============================================================================
-->
<target name="deploy" depends="init">
<oracle:deploy moduletype="ear" host="${oc4j.host}"
port="${oc4j.admin.port}" userid="${oc4j.admin.user}"
password="${oc4j.admin.password}"
file="${deploy.dir}/${ear.file}"
deploymentname="${app.name}"
logfile="${log.dir}/deploy-ear.log"/>
<oracle:bindWebApp host="${oc4j.host}" port="${oc4j.admin.port}"
userid="${oc4j.admin.user}"
password="${oc4j.admin.password}"
deploymentname="${app.name}" webmodule="${web.name}"
websitename="${oc4j.binding.module}"
contextroot="/${app.name}"
/>
</target>
<!--
============================================================================
== clean
============================================================================
-->
<target name="clean">
<delete quiet="true">
<fileset dir="lib" includes="**/*.jar" excludes="**/ivy-1.1.jar"/>
<fileset dir="${classes.dir}" includes="**/*"/>
<fileset dir="deploy" includes="*"/>
</delete>
</target>
<!--
============================================================================
== deploy
============================================================================
-->
<target name="all" depends="clean,ear,deploy"/>
</project>
Next the build.properties file:
app.name=test1
web.name=test1-web
oc4j.binding.module=default-web-site
oc4j.admin.port=23791
oc4j.admin.user=oc4jadmin
oc4j.http.port=8888
oc4j.admin.password=admin
oc4j.host=localhost
java.home=c:\Program Files\Java\jdk1.5.0_01
oracle.home=c:\programs\oracle\oc4j1013-dp4
And finally a shell script to start ant.
set JAVA_HOME=c:Program FilesJavajdk1.5.0_01
set ANT_HOME=c:programsoracleoc4j1013-dp4ant
set ORACLE_HOME=c:programsoracleoc4j1013-dp4
set PATH=%JAVA_HOME%bin;%ANT_HOME%bin;%PATH%
%ANT_HOME%binant %1 %2 %3