Launching your WebStart-based client-side application from within Eclipse/WOLips
There are two key files that help with launching your WebStart-based Java Client application from within WOLips.
- The Client Launch Script. This script allows Eclipse to automatically lanuch the client-side application for you when you run the application from within Eclipse instead of you needing to launch it manually using the normal Java WebStart process. Without this scrip you will get the following informational message in the console.
If this occurs, the application will revert to launching the regular way by opening a web browser and loading the Main component, which means that you will still be able to launch your client-side application by clicking on the link for it in your web browser (which launches the app using Java WebStart), it's just not as convenient as having the application launch immediately upon running.
Unable to locate client launch script in your application, using the Auto Open In Browser feature instead of the Auto Open Client Application feature.
Apple includes this script with WebObjects (/Library/Application Support/Apple/Developer Tools/WebObjects Support/UnixLaunch.sh). There is also a Windows .CMD file that serves the same purpose on Windows. Its implementation should be similar but I have not tested it.
- The Client-Side Classpath File (ClasspathClient.txt). This file defines the classpath for the client-side application. This is different than the classpath information that the server-side portion of a Java Client application uses. It appears that this file is only used by the Launch Script and not used when launching the client-side application using WebStart. Right now this file is not automatically created by the build process so you have to manually maintain it. If this file is not present or if there are errors in it, you will likely not be able to launch your client-side application using the Launch Script. Here is a bare-bones file. You'll need to add any additional Frameworks you've added to the project build path.
# ApplicationClass == com.webobjects.eoapplication.client.EOClientApplicationSupport # JDB == jdb # JDBOptions == # JVM == java # JVMOptions == APPROOT/WebServerResources/Java/MyApp.jar LOCALROOT/Library/Frameworks/MyFramework.framework/WebServerResources/Java/MyFramework.jar /System/Library/Frameworks/JavaFoundation.framework/WebServerResources/Java/JavaFoundation.jar WOROOT/Library/Frameworks/JavaEOControl.framework/WebServerResources/Java/JavaEOControl.jar WOROOT/Library/Frameworks/JavaXML.framework/WebServerResources/Java/JavaXML.jar WOROOT/Library/Frameworks/JavaDirectToWeb.framework/WebServerResources/Java/JavaDirectToWeb.jar WOROOT/Library/Frameworks/JavaEOApplication.framework/WebServerResources/Java/JavaEOApplication.jar WOROOT/Library/Frameworks/JavaEODistribution.framework/WebServerResources/Java/JavaEODistribution.jar WOROOT/Library/Frameworks/JavaEOGeneration.framework/WebServerResources/Java/JavaEOGeneration.jar WOROOT/Library/Frameworks/JavaEOInterface.framework/WebServerResources/Java/JavaEOInterface.jar WOROOT/Library/Frameworks/JavaEOInterfaceSwing.framework/WebServerResources/Java/JavaEOInterfaceSwing.jar WOROOT/Library/Frameworks/JavaEORuleSystem.framework/WebServerResources/Java/JavaEORuleSystem.jar WOROOT/Library/Frameworks/JavaWOJSPServlet.framework/WebServerResources/Java/JavaWOJSPServlet_client.jar HOMEROOT/Library/Java LOCALROOT/Library/Java WOROOT/Library/Java /Network/Library/Java WOROOT/Library/Frameworks/JavaVM.framework/Classes/classes.jar WOROOT/Library/Frameworks/JavaVM.framework/Classes/ui.jar
Both of these files need to be copied into your app's build directory as part of the incremental build process. This is already documented in the Java Client-WebStart Incremental Build page.
If everything is setup correctly, when you run your project in Eclipse/WOLips you will see the following in the console:
[2009-01-22 08:06:50 EST] <main> Opening client application with script: /MyEclipseWorkspace/MyApp/build/MyApp.woa/Contents/MacOS/MyApp_Client http://10.10.10.2:60436/cgi-bin/WebObjects/MyApp.woa
Copy-Pasting this line into Terminal.app will allow you to launch the client-side application, and any errors generated by the launch will show up in the terminal.