Of the various approaches to run reports and get the result, is there a recommended or popular approach when integrating jasperserver enterprise version with a Java Web application?
These are the one's I'm aware:
It depends on the level of integration you want:
- The HTTP API in combination with iFrames will allow you to expose the full set of features from the server within your application, including ad hoc designer, interactive reports, etc.
- Using Single Sign-on in combination with customizing the UI of JasperReports Server using changes to the theme/CSS could allow you to create an experience where users can navigate between your app and JasperReports Server without really knowing they are changing server - this is good for situations where you want a tab in your application that exposes reporting/analytics.
- The REST API is good for integrating the controls/selection of input parameters within your app and calling reports with the parameters and rendering the reports, etc. back into your application.
Using the Java API is really only good if you plan to actually extend the JasperReports Server app to include your own functionality, creating a single web app - I don't know that many people use this other than for customizations to the Server with the integration happening using the other methods.
SOAP is used for pretty much the same purpose of the REST API - It is an older technology. REST is seen as being easier to implement and it is the newer of the technologies, so I would choose REST over SOAP, but this is more about what you are familiar with.
For what it is worth, this is not a "choose one" solution - you can actually use all of the above to achieve the level of integration you want in various areas of your application.
I hope this helps!