I would like to use D3.js (or maybe Raphaël) for backend-generated reports using XSL-FO with Java. These JavaScript libraries should be used for several reasons:
You might want to have a look at these d3 wrappers:
https://github.com/stefaneidelloth/javafx-d3
https://github.com/gwtd3/gwt-d3
https://vaadin.com/directory#!addon/freecode-charts-and-d3-wrapper