Wiki source code of WO 5.4 Getting Started

Version 70.1 by Pascal Robert on 2007/11/29 14:10

Hide last authors
Pascal Robert 61.1 1 {{toc}}{{/toc}}
2
3 = Installing WebObjects and WOLips =
4
5 Download Xcode 3 from [[ADC>>http://developer.apple.com/leopard/devcenter/]], the WebObjects frameworks are included in this package. You will have to make a custom install and select //WebObjects// in the package list since WebObjects is not part of the default installation.
6
7 Install [[Eclipse 3.3.1.1>>http://www.eclipse.org/downloads/download.php?file=//eclipse/downloads/drops/R-3.3.1.1-200710231652/eclipse-SDK-3.3.1.1-macosx-carbon.tar.gz]] (yes that's an extra .1) which fixes the permgen space bug from 3.3.1
8
9 [[Install>>WOL:Install WOLips with Eclipse Update Manager]] WOLips from the [[nightly>>http://webobjects.mdimension.com/wolips/nightly]] build server
10
11 Start Eclipse and switch to the WOLips perspective. To achieve this, open the //Window// menu, select //Open Perspective// and select //Other...//.
12
13 [[image:PerpectiveMenu.png]]
14
15 In the perspective choices, select //WOLips// and click //Ok//.
16
17 [[image:PerspectiveChoices.png]]
18
19 If you don't switch to the WOLips perspective, you won't be able to create new WebObjects projects.
20
21 You are now ready to create projects or importing the examples. 
22
Pascal Robert 53.1 23 = Running the examples =
24
Pascal Robert 55.1 25 Apple has converted their WebObjects examples in the Eclipse format, but no documentation is provided on how to import them into Eclipse.  The examples are in ///Developer/Examples/JavaWebObjects//.
Gavin Eadie 23.1 26
Pascal Robert 57.1 27 The first step is: install Eclipse and WOLips :-)  
David Avendasora 39.1 28
Pascal Robert 55.1 29 Some examples needs Derby, an embedded Java database (OpenBase is not included with WO anymore). To install the databases, you have to do:
David Avendasora 39.1 30
David Holt 43.1 31 {{code}}
32
33 cd /Developer/Examples/JavaWebObjects/
34 sudo sh installDatabases.sh <yourusername>
35
36 {{/code}}
37
Pascal Robert 55.1 38 Now, you can import the examples into Eclipse. Start Eclipse, select //File// > //Import//,
Pascal Robert 57.1 39
40 [[image:ImportMenu.png]]
41
Pascal Robert 55.1 42 and select //General// > //Existing Projects// into Workplace.
David Holt 43.1 43
Pascal Robert 55.1 44 [[image:ImportGeneral.png]]
David Holt 43.1 45
Pascal Robert 57.1 46 On the next page, select //Select root directory// and browse your disk to ///Developer/Examples/JavaWebObjects//. You should see a list of projects to import.&nbsp; Deselect the second //javaeoutil// project, or else you won't be able to import the projects.
47
48 [[image:ImportProjectsList.png]]
49
50 After the importation is done, you should see the projects in the WO Package Explorer. If you see the projects in Package Explorer (without "WO" in the name), that means that you are using the Java perpective instead of the WOLips perpective.&nbsp; Switch the perpective to WOLips.
51
52 [[image:PackageExplorer.png]]
53
54 Now, you need to fix the examples, because the build path is pointing to the source projects of the WO frameworks, source that nobody outside Apple has access to :-)For each project, right-click on each project, select //Build Path// > //Configure Build Path...//
55
56 [[image:BuildPathMenu.png]]
57
58 Click on the //Projects// tab, select the references to the WO frameworks that have the Warning icon and click //Remove//.
59
60 [[image:ConfigureBuildPath.png]]
61
62 Click on the //Libraries// tab, click the //Add Library// button.&nbsp; Select //WebObjects Frameworks// and click //Next//.
63
64 [[image:AddLibrary.png]]
65
Pascal Robert 55.1 66 Click //System//, open the triangle next to //System// and make sure that //JavaEOAccess//, //JavaEOControl//, //JavaFoundation//, //JavaWebObjects//, //JavaWOExtensions// and //JavaXML// are selected. For //SchoolToolsClient//, you also need to add //JavaWebServicesSupport// and //JavaWebServicesClient// to the build path. For the //SchoolToolsServer//, you need to add //JavaWebServicesSupport//.
David Holt 43.1 67
Pascal Robert 59.1 68 [[image:WOSystemLibs.png]]
69 &nbsp;
70
Pascal Robert 55.1 71 After you corrected the build path on a project, the project will rebuild itself and the errors shoud dissapear.
David Holt 43.1 72
Pascal Robert 55.1 73 //JavaBusinessLogic// and //RelatedLinks// requires Apache Derby, but the path to Derby's JAR is wrong. Remove the JAR from the build path, click //Add External JARs...//, browse your disk up to ///Developer/Examples/JavaWebObjects/Databases/db-derby-10.2.2.0-bin/lib// and select //derby.jar//.&nbsp; The build path should look like this:
Pascal Robert 57.1 74
Pascal Robert 55.1 75 [[image:GoodDerbyPath.png]]
Pascal Robert 57.1 76
Pascal Robert 55.1 77 Voilà&nbsp; You finally can run the examples.&nbsp;
Pascal Robert 61.1 78
79 = Running Monitor and wotaskd on Mac OS X 10.5 "client" =
80
81 Monitor and wotaskd are installed, but the launchd scripts to start them are not installed. You can grab them from a 10.5 Server installation, or follow those instructions.
82
Quinton Dolan 63.1 83 Make sure //Web Sharing// is enabled in the //Sharing// panel in //System Preferences// (note: 10.5 comes with Apache 2.2 as the default).
Pascal Robert 61.1 84
Quinton Dolan 63.1 85 Edit ///etc/apache2/httpd.conf// (if you did a fresh install, you may already have these - search httpd.conf first)
Pascal Robert 61.1 86
Quinton Dolan 63.1 87 Search for rewrite//module, and above it, add this line~://
Pascal Robert 61.1 88
89 {{code}}
90
91 LoadModule WebObjects_module /System/Library/WebObjects/Adaptors/Apache2.2/mod_WebObjects.so
92
93 {{/code}}
94
Quinton Dolan 63.1 95 Go to the very end and add:
Pascal Robert 61.1 96
97 {{code}}
98
99 Include /System/Library/WebObjects/Adaptors/Apache2.2/apache.conf
100
101 {{/code}}
102
103 Search for "Directory /" and comment out the Order and Deny lines:
104
105 {{code}}
106
107 <Directory />
108 Options FollowSymLinks
109 AllowOverride None
110 #Order deny,allow
111 #Deny from all
112 </Directory>
113
114 {{/code}}
115
116 Restart apache
117
118 {{code}}
119
120 sudo apachectl graceful
121
122 {{/code}}
123
Quinton Dolan 63.1 124 If you run //ps auxw grep httpd// you should see apache now running
Pascal Robert 61.1 125
126 Create ///Library/LaunchDaemons/com.apple.webobjects.wotaskd.plist// with:
127
128 {{code}}
129
130 <?xml version="1.0" encoding="UTF-8"?>
131 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
132 <plist version="1.0">
133 <dict>
134 <key>Disabled</key>
135 <false/>
136 <key>GroupName</key>
137 <string>appserverusr</string>
138 <key>Label</key>
139 <string>com.apple.webobjects.wotaskd</string>
140 <key>OnDemand</key>
141 <false/>
142 <key>Program</key>
143 <string>/System/Library/WebObjects/JavaApplications/wotaskd.woa/wotaskd</string>
144 <key>ProgramArguments</key>
145 <array>
146 <string>wotaskd</string>
147 <string>-WOPort</string>
148 <string>1085</string>
149 </array>
150 <key>ServiceIPC</key>
151 <false/>
152 <key>UserName</key>
153 <string>appserver</string>
154 </dict>
155 </plist>
156
157 {{/code}}
158
Quinton Dolan 63.1 159 Create ///Library/LaunchDaemons/com.apple.webobjects.womonitor.plist// with:
Pascal Robert 61.1 160
161 {{code}}
162
163 <?xml version="1.0" encoding="UTF-8"?>
164 <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
165 <plist version="1.0">
166 <dict>
167 <key>Disabled</key>
168 <false/>
169 <key>GroupName</key>
170 <string>appserverusr</string>
171 <key>Label</key>
172 <string>com.apple.webobjects.womonitor</string>
173 <key>OnDemand</key>
174 <false/>
175 <key>Program</key>
176 <string>/System/Library/WebObjects/JavaApplications/JavaMonitor.woa/JavaMonitor</string>
177 <key>ProgramArguments</key>
178 <array>
179 <string>JavaMonitor</string>
180 <string>-WOPort</string>
181 <string>56789</string>
182 </array>
183 <key>ServiceIPC</key>
184 <false/>
185 <key>UserName</key>
186 <string>appserver</string>
187 </dict>
188 </plist>
189
190 {{/code}}
191
192 Start the launchd daemons :
193
194 {{code}}
195
196 launchctl load /Library/LaunchDaemons/com.apple.webobjects.wotaskd.plist
197 launchctl load /Library/LaunchDaemons/com.apple.webobjects.womonitor.plist
198
199 {{/code}}
200
201 If you run "ps auxw grep java" you should see wotaskd and java monitor now running. You should be able to connect to Monitor by this URL:
202
203 {{code}}
204
205 http://localhost:56789
206
207 {{/code}}
208
209 = Developing with both WebObjects 5.4 and 5.3 =
210
Quinton Dolan 63.1 211 (Mike Schrag) The following can be done a couple ways, but this is just how I happened to have things setup in betas, so I kept it (it worked for me):
Pascal Robert 61.1 212
Quinton Dolan 63.1 213 Make a ///System/Library/Frameworks/WebObjects54// folder, and move the following frameworks from the 5.4 install into it:
214
Pascal Robert 61.1 215 {{code}}
216
217 JavaDTWGeneration.framework
218 JavaDirectToWeb.framework
219 JavaEOAccess.framework
220 JavaEOApplication.framework
221 JavaEOControl.framework
222 JavaEODistribution.framework
223 JavaEOGeneration.framework
224 JavaEOInterface.framework
225 JavaEOInterfaceCocoa.framework
226 JavaEOInterfaceSwing.framework
227 JavaEOProject.framework
228 JavaEORuleSystem.framework
229 JavaEOTool.framework
230 JavaFoundation.framework
231 JavaJDBCAdaptor.framework
232 JavaJNDIAdaptor.framework
233 JavaWOExtensions.framework
234 JavaWOJSPServlet.framework
235 JavaWebObjects.framework
236 JavaWebServicesClient.framework
237 JavaWebServicesGeneration.framework
238 JavaWebServicesSupport.framework
239 JavaXML.framework
240
241 {{/code}}
242
243 Make a ///System/Library/Frameworks/WebObjects53// folder, and move the following frameworks from your old 5.3 install into it (I tar'd these up from 5.3 before upgrading, but you can download 5.3 and extract these from the pkg, or POSSIBLY install them with the actually installer ... YMMV on that one)
244
245 {{code}}
246
247 JavaDTWGeneration.framework
248 JavaDirectToWeb.framework
249 JavaEOAccess.framework
250 JavaEOApplication.framework
251 JavaEOCocoa.framework
252 JavaEOControl.framework
253 JavaEODistribution.framework
254 JavaEOGeneration.framework
255 JavaEOInterface.framework
256 JavaEOInterfaceCocoa.framework
257 JavaEOInterfaceSwing.framework
258 JavaEOProject.framework
259 JavaEORuleSystem.framework
260 JavaEOTool.framework
261 JavaFoundation.framework
262 JavaJDBCAdaptor.framework
263 JavaJNDIAdaptor.framework
264 JavaWOExtensions.framework
265 JavaWOJSPServlet.framework
266 JavaWebObjects.framework
267 JavaWebServicesClient.framework
268 JavaWebServicesGeneration.framework
269 JavaWebServicesSupport.framework
270 JavaXML.framework
271
272 {{/code}}
273
274 I then use the following two scripts to be able to switch between using 5.3 and 5.4 system wide:
275
276 {{code}}
277
278 bash-3.2# cat wo53
Pascal Robert 69.1 279 for framework in `ls /System/Library/Frameworks/WebObjects53`; do rm /System/Library/Frameworks/$framework; ln \-sf /System/Library/Frameworks/WebObjects53/$framework /System/Library/Frameworks/$framework; done
Pascal Robert 61.1 280 bash-3.2# cat wo54
Pascal Robert 69.1 281 for framework in `ls /System/Library/Frameworks/WebObjects54`; do rm /System/Library/Frameworks/$framework; ln \-sf /System/Library/Frameworks/WebObjects54/$framework /System/Library/Frameworks/$framework; done
Pascal Robert 61.1 282
283 {{/code}}
284
285 At this point, you should have NO WO frameworks in /System/Library/Frameworks they should be in subfolders.
286
287 Now go ahead and run wo53, which should now give you WO 5.3 framework symlinks.
288
289 You may need to do a clean build of your projects in Eclipse If things are setup properly, you should not get any Java errors you didn't already have.