Java Client-Building

Version 30.1 by David Avendasora on 2008/07/01 16:47

Your deployed application must have a jar of all the client-side classes (and any subclasses of EOGenericRecord that your client-classes extend) in the Project.woa/Contents/WebServerResources/Java/ directory. If you don't include a jar of your client-side classes in this directory, WebObjects silently uses EOGenericRecord instead. This is made obvious by things like default values, client-side validation and other client-side logic not working in the deployed application.

The following are the instructions when using Ant to build:

  1. Add the following "javaclient" target to your build.xml file.

<target name="javaclient">
    <mkdir dir="${dest.dir}/${project.name}.woa/Contents/WebServerResources/Java"/>
    <jar basedir="${classes.dir}" includes="**/client/**/*.class,**/common/**/*.class"
         jarfile="${dest.dir}/${project.name}.woa/Contents/WebServerResources/Java/${project.name}.jar">
    </jar>

    <!-- project user.d2wmodel file (D2JC only) -->
    <copy file="user.d2wmodel" tofile="${dest.dir}/${project.name}.woa/Contents/Resources/user.d2wmodel"/>

</target>
  1. Make the "build" and "install" targets depend upon "javaclient" just prior to the "ssdd" target.

<target name="build" depends="setProps,init.build,build.woapp,javaclient,ssdd,war" />
<target name="install" depends="setProps,init.install,build.woapp,javaclient,ssdd,war" />