Version 22.1 by David Avendasora on 2008/06/25 09:38

Hide last authors
David Avendasora 14.1 1 1. Create a new WebObjects Application
2 [[image:Picture 9.png]]
3 1. Name it "WebStartJNLPTest" in Eclipse with a package of "your.app" {{note title="Note!"}}If you change the Project name or packages, then you'll need to make additional changes in the subsequent steps.{{/note}}
David Avendasora 1.1 4 1. Modify the Main.html by adding:
5
6 {{code title="Main.html Changes"}}
7 <WEBOBJECT NAME=JavaClientLink>click here</WEBOBJECT>
8 {{/code}}
9
10 1. Modify the Main.wod file by adding:
11
12 {{code title="Main.wod Changes"}}
13 JavaClientLink: WOHyperlink {
14 href = javaClientLink;
15 }
16 {{/code}}
17
18 1. Modify the Main.java file by adding:
19
20 {{code title="Main.java Changes"}}
21
22 public String javaClientLink() {
23 return WOJavaClientComponent.webStartActionURL(context(), "JavaClient");
24 }
25
26 {{/code}}
27
David Avendasora 22.1 28 1. Create a WOComponent named "JavaClient". This WOComponent will be what passes the specifics about your client-side application to WebObjects. {{note title="Note!"}}If you are not creating a Direct To Java Client (D2JC) application, then you will need to replace the applicationClassName (com.webobjects.eogeneration.EODynamicApplication) with the name of your client-side application class. Your non-D2JC client-side Application class *must* subclass EOApplication.{{/note}}
David Avendasora 1.1 29 1. Modify the JavaClient.html replacing the contents with:
30
David Avendasora 14.1 31 {{code title="JavaClient.html Contents"}}
David Avendasora 1.1 32 <WEBOBJECT NAME=JavaClientComponent></WEBOBJECT>
33 {{/code}}
34
David Avendasora 22.1 35 1. Modify the JavaClient.wod file by adding:
David Avendasora 1.1 36
37 {{code title="JavaClient.wod Contents"}}
38
39 JavaClientComponent: WOJavaClientComponent {
40 applicationClassName = "com.webobjects.eogeneration.EODynamicApplication";
David Avendasora 22.1 41 applicationName = "WebStartJBNDTest";
42 applicationDescription = "WebStartJBNDTest";
David Avendasora 1.1 43 downloadClientClasses = "noDownloadClientClasses";
44 vendor = "My Company";
45 }
46
47 {{/code}}
48
David Avendasora 22.1 49 1. Add the following frameworks to the project build path:
David Avendasora 14.1 50
David Avendasora 22.1 51 {{code}}
David Avendasora 1.1 52 JavaDirectToWeb
53 JavaDTWGeneration
54 JavaEOApplication
55 JavaEOControl
56 JavaEODistribution
57 JavaEOGeneration
58 JavaEOInterface
59 JavaEOInterfaceSwing
60 JavaEOProject
61 JavaEORuleSystem
62 JavaFoundation
63 JavaJDBCAdaptor
64 JavaWebObjects
65 JavaWOExtensions
David Avendasora 22.1 66 {{/code}}
David Avendasora 1.1 67
David Avendasora 22.1 68 1. Create a ClasspathClient.txt file in the root of the project and paste the following as contents:
David Avendasora 14.1 69
David Avendasora 1.1 70 {{code title="ClasspathClient.txt File"}}
71
72 # ApplicationClass == com.webobjects.eoapplication.client.EOClientApplicationSupport
73 # JDB == jdb
74 # JDBOptions ==
75 # JVM == java
76 # JVMOptions ==
77 APPROOT/WebServerResources/Java/WebStartJNLPTest.jar
78 /System/Library/Frameworks/JavaFoundation.framework/WebServerResources/Java/JavaFoundation.jar
79 WOROOT/Library/Frameworks/JavaEOControl.framework/WebServerResources/Java/JavaEOControl.jar
80 WOROOT/Library/Frameworks/JavaXML.framework/WebServerResources/Java/JavaXML.jar
81 WOROOT/Library/Frameworks/JavaDirectToWeb.framework/WebServerResources/Java/JavaDirectToWeb.jar
82 WOROOT/Library/Frameworks/JavaEOApplication.framework/WebServerResources/Java/JavaEOApplication.jar
83 WOROOT/Library/Frameworks/JavaEODistribution.framework/WebServerResources/Java/JavaEODistribution.jar
84 WOROOT/Library/Frameworks/JavaEOGeneration.framework/WebServerResources/Java/JavaEOGeneration.jar
85 WOROOT/Library/Frameworks/JavaEOInterface.framework/WebServerResources/Java/JavaEOInterface.jar
86 WOROOT/Library/Frameworks/JavaEOInterfaceSwing.framework/WebServerResources/Java/JavaEOInterfaceSwing.jar
87 WOROOT/Library/Frameworks/JavaEORuleSystem.framework/WebServerResources/Java/JavaEORuleSystem.jar
88 WOROOT/Library/Frameworks/JavaWOJSPServlet.framework/WebServerResources/Java/JavaWOJSPServlet_client.jar
89 HOMEROOT/Library/Java
90 LOCALROOT/Library/Java
91 WOROOT/Library/Java
92 /Network/Library/Java
93 WOROOT/Library/Frameworks/JavaVM.framework/Classes/classes.jar
94 WOROOT/Library/Frameworks/JavaVM.framework/Classes/ui.jar
95
96 {{/code}}
97
98 1. Create a javaclientbuild.xml file in root of the project and paste the follwing as contents:
99
100 {{code title="javaclientbuild.xml"}}
101
102 <project name="javaclient" default="javaclient" basedir=".">
103 <target name="setProps">
104 <property file="${user.home}${file.separator}build.properties"/>
105 <property file="build.properties"/>
106 <property file="${user.home}${file.separator}Library${file.separator}wobuild.properties"/>
107 <condition property="wo.properties.check.failed">
108 <not>
109 <and>
110 <isset property="wo.wosystemroot"/>
111 <isset property="wo.wolocalroot"/>
112 </and>
113 </not>
114 </condition>
115 <fail message="Could not find ${user.home}${file.separator}Library${file.separator}wobuild.properties." if="wo.properties.check.failed"/>
116 </target>
117 <target name="javaclient" depends="setProps">
118 <mkdir dir="build/${project.name}.woa/Contents/WebServerResources/Java"/>
119
120 <!-- project client-side classes -->
121 <copy todir="build/${project.name}.woa/Contents/WebServerResources/Java/">
122 <fileset dir="${classes.dir}">
123 <include name="**/client/**/*.class,**/common/**/*.class,**/BMGenericRecord.class"/>
124 <exclude name="**/server/**/*.class"/>
125 </fileset>
126 </copy>
127
128 <jar basedir="${classes.dir}"
129 includes="**/client/**/*.class,**/common/**/*.class,**/BMGenericRecord.class"
130 excludes="**/server/**/*.class"
131 jarfile="build/${project.name}.woa/Contents/WebServerResources/Java/${project.name}.jar">
132 </jar>
133
134 <!-- Launch Scripts and WOBootstrap.jar-->
135 <mkdir dir="build/${project.name}.woa/Contents/MacOS"/>
136 <mkdir dir="build/${project.name}.woa/Contents/UNIX"/>
137 <mkdir dir="build/${project.name}.woa/Contents/Windows"/>
138
139 <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/UnixLaunch.sh"
140 tofile="build/${project.name}.woa/Contents/${project.name}"/>
141 <chmod file="build/${project.name}.woa/Contents/${project.name}" perm="ugo+rx"/>
142 <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/WinLaunch.CMD"
143 tofile="build/${project.name}.woa/Contents/${project.name}.CMD"/>
144 <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/WOBootstrap.jar"
145 tofile="build/${project.name}.woa/Contents/WOBootstrap.jar"/>
146
147 <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/UnixLaunchClient.sh"
148 tofile="build/${project.name}.woa/Contents/MacOS/${project.name}_Client"/>
149 <chmod file="build/${project.name}.woa/Contents/MacOS/${project.name}_Client" perm="ugo+rx"/>
150 <copy file="ClasspathClient.txt" tofile="build/${project.name}.woa/Contents/MacOS/ClasspathClient.txt"/>
151
152 <copy file="/Library/Application Support/Apple/Developer Tools/WebObjects Support/WinLaunch.CMD"
153 tofile="build/${project.name}.woa/Contents/Windows/${project.name}.CMD"/>
154
155 </target>
156 </project>
157
158 {{/code}}
159
David Avendasora 18.1 160 1. Right-click on the javaclientbuild.xml file and select "Run As -> Ant Build"
David Avendasora 1.1 161 1. Right-click on the project and select "Run As -> WebObjects Application"
162 1. Select your.app.Application as the Application class
David Avendasora 18.1 163 1. Copy the Direct Connect URL from the Eclipse console and paste it into your browser. You should get a "click here" link.
164 1. Click it.