How do widgets in Wookie get around same-origin restrictions for Ajax requests?
The Widget javascript object available to running widgets has a proxify() method for just this purpose. Proxify wraps the request in a call to a proxy server.
So proxify("http://example.org/myservice/")
results in a URL like http://my.wookie.org/proxy?url=http://example.org/myservice/&api_key=myapikey
Shindig also uses the same method for OpenSocial applications, and has its own bundled proxy service.
Wookie lets you use either; see the widgetserver.properties configuration file. This contains instructions for specifying either no proxy, the Wookie service, or the Shindig one (assuming its available).
Wookie's bundled proxy servlet is a bit stricter than the one bundled in Shindig, as it only allows text, xml or json (not binary), and can also be controlled using a whitelist set up by the Wookie administrator.
Wookie messed up my widget's <script> tags when I imported it! What happened?
Wookie uses HtmlCleaner to inject its own script tags into your Widget's start file when it is uploaded. This works fine in most cases; however if you use self-closing script tags things can go wrong. To avoid this always use regular HTML-style script tags e.g <script src="main.js"></script>
and not <scripr src="main.js"/>
. See Issue WOOKIE-42 for more information.
Wookie installs fine in Tomcat, but when I try to see it I get "org.hibernate.HibernateException: flush is not valid without active transaction"
This problem occurs when running Tomcat with Security Manager enabled, but without having granted permissions for Wookie to access the database server. For development purposes its better to just run Tomcat without Security Manager enabled; otherwise you need to edit your catalina.policy file as described in the Tomcat Security Manager How-To.