我有Jasper Reports Server(安装在
www.example.com)和一个单独的Java / JSP应用程序(安装在
www.example.net),我正在寻找生成报告的不同选项.
选项1(当前工作解决方案)
我目前的工作解决方案是用户登录Java / JSP应用程序,并选择一个报告.应用程序创建报告的XML表示形式,将其保存为fileNameXML,然后使用以下代码将其发送到Jasper Reports Server:
<IFRAME height="600" width="1000" src="https://www.example.com/jasperserver/flow.html? _flowId=viewReportFlow&standAlone=true&_flowId=viewReportFlow& ParentFolderUri=%2Freports& reportUnit=%2Freports%2FExample_Report_2&j_username=user& j_password=password& net.sf.jasperreports.xml.source=https://www.example.net/<%=fileNameXML%>"> </IFRAME>
(请注意,即使我在URL中传递用户名和密码,安全性也不会受到影响,因为filenameXML是使用String fileName = UUID.randomUUID()创建的.toString()fileExt;)
选项2
我将Jasper Reports服务器直接连接到www.example.net上的sql Server数据库,并以此方式生成报告.这种方法的缺点是(a)我需要在Jasper Reports中设置所有用户(b)我需要以安全意识的方式传递参数,以便每个用户只能访问他们自己的数据(c)我只能访问数据库,而不能访问我的应用程序
我的理想解决方案
但是,我真的希望能够通过Jasper访问我的应用程序的计算,并绕过登录到我的应用程序.
这样做的一个优点是我的应用程序还没有适当的移动访问权限,用户可以下载Jasper Mobile Application应用程序并从那里访问报告.
这将涉及以下内容:
>用户登录Jasper
>用户选择报告
> Jasper使用某些参数调用我的应用程序
>应用程序创建xml文件
>应用程序返回此文件的链接
>贾斯帕表示报道
实现这一目标的最佳方法是什么?