Wiki source code of Why doesn't my application launch into my browser?
Last modified by Kieran Kelleher on 2010/01/27 13:23
Show last authors
| author | version | line-number | content |
|---|---|---|---|
| 1 | **Discussion:** You select 'Run as...' -> WOApplication; the project runs; you can copy the url out of the console and into the browser; but it doesn't conveniently launch straight into the browser anymore. | ||
| 2 | |||
| 3 | **Solution:** You probably have a space in your Eclipse project name; eg. 'My Project' remove it, or replace it suitably, eg. 'My_Project' and it will probably all start working again. | ||
| 4 | |||
| 5 | **Discussion:** Presumably, the launch fails because the Eclipse project name automatically forms part of the URL for running the application as a WOApplication in Eclipse/WOLips. However, a space is not a legal character for a URL as we know, and must usually be escaped with UTF-8 encoding as '%20'. | ||
| 6 | |||
| 7 | === Leopard is missing WOOpenURL === | ||
| 8 | |||
| 9 | {{note}} | ||
| 10 | WOOpenURL only exists in WO 5.3.3 and lower versions of WO. WO 5.4.X does not use WOOpenURL file, which incidentally existed to provide cross-platform launching. In WO 5.4.X, the method com.webobjects._ideservices._WOLaunchServices#_openURL now determines the logic for auto-open-in-browser. And if you could look at the source code, not that I would of course, you would notice that it just calls /usr/bin/open instead. So if you want auto-open-in-browser to launch a different browser than your default (for example if you use FireFox for development and Safari as your default browser) you will have to write a patch for this class and insert it in classpath ahead of the built-in one. | ||
| 11 | {{/note}} | ||
| 12 | |||
| 13 | If you are on Leopard, something else is going on. | ||
| 14 | |||
| 15 | There used to be an application called /System/Library/WebObjects/Executables/WOOpenURL that opened the standard web browser with a pointer to the running the project, eg: [[http:~~/~~/193.78.79.17:49832/cgi-bin/WebObjects/d2wupload2.woa>>url:http://193.78.79.17:49832/cgi-bin/WebObjects/d2wupload2.woa||rel="nofollow" shape="rect" class="external-link"]] | ||
| 16 | |||
| 17 | That application does not exist any more in Leopard. But there is a simple workaround: | ||
| 18 | |||
| 19 | Type this in a terminal as root (or precede with sudo). | ||
| 20 | |||
| 21 | {{code}} | ||
| 22 | |||
| 23 | mkdir -p /System/Library/WebObjects/Executables | ||
| 24 | ln -s /usr/bin/open /System/Library/WebObjects/Executables/WOOpenURL | ||
| 25 | |||
| 26 | {{/code}} | ||
| 27 | |||
| 28 | ==== WebObjects 5.3.3 on Leopard ==== | ||
| 29 | |||
| 30 | If you change the **wo.wosystemroot** setting to use WO 5.3 frameworks from a different location than {{code language="none"}}/System/Library/Frameworks{{/code}}, you will need to also change the location of the above hack. e.g. | ||
| 31 | |||
| 32 | {{code}} | ||
| 33 | |||
| 34 | wo.wosystemroot=/Users/chuck | ||
| 35 | |||
| 36 | {{/code}} | ||
| 37 | |||
| 38 | Requires this change: | ||
| 39 | |||
| 40 | {{code}} | ||
| 41 | |||
| 42 | mkdir -p /Users/chuck/Library/WebObjects/Executables | ||
| 43 | ln -s /usr/bin/open /Users/chuck/Library/WebObjects/Executables/WOOpenURL | ||
| 44 | |||
| 45 | {{/code}} |