RaspberryPi, Jetty, Vaadin & Push support
I wrote in a previous article about my problems with Jetty and Vaadin push support.
I found the problem in the meantime and Jetty works well on my Raspi. The performance is a little bit better than with Tomcat 8.
What was the problem?
Vaadin 7.1 push implementation was incompatible with Jetty 9.2.6. I had to use Jetty 9.0.7.
I didn't use Jetty as embedded server, it runs standalone via bin/jetty.sh. It was a little bit tricky to add an external lib to the classpatch because the commandline argument changed from 9.0 to 9.2.
I had to add following to my jetty.sh:
export JETTY_BASE="/opt/jetty/"
export JAVA="/opt/java/bin/java"
export JETTY_ARGS="--module=websocket --module=continuation path=/usr/share/java/RXTXcomm.jar"
With 9.2:
You have to know the pitfalls
It seems that Vaadin' websocket implementation for Jetty is better than for Tomcat because Vaadin handles multiple rotate/resize events faster with less communication. I know that Vaadin 7.3 has a better websocket implementation and it's also up-to-date and should work with Jetty 9.2.6, but I still use Vaadin 7.1.
I recommend Jetty for your embedded project because it's fast and simple. If you prefer Tomcat, you can't do anything wrong.
Oh... I also solved the problem with missing request from / to /index.html. The redirection won't work if you don't have a file with the name index.html in your public web area because Jetty does nothing in that case. I didn't find an option for that, but creating an empty index.html solved my problem because I had a Servlet which was listening on /index.html.