I was able to run this service on my laptop without any problem, but when I tried to distribute it to others, it wouldn’t work. So I went back and tried to deploy my XAR to a clean VM, and I kept getting org.apache.bsf.BSFException: unable to load language: ruby. It didn’t make any sense, because it ran on one copy of Sonic, why not the other?
Well, after a lot of Googling and head-scratching, I came to the realization that I was running my laptop container on Java 5, while the clean install on the VM was, by default, using Java 1.4.2. Once I changed the VM container to Java 5, the problem went away.