Jasper与不同应用程序之间的通信

时间:2015-06-28 11:39:35

标签: java jsp jasper-reports jasperserver

我有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应用程序并从那里访问报告。

这将涉及以下内容:

  1. 用户登录Jasper
  2. 用户选择报告
  3. Jasper使用某些参数调用我的应用程序
  4. 应用程序创建xml文件
  5. 应用程序返回此文件的链接
  6. Jasper显示报告
  7. 实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

我认为最好的办法是:

  • 在您的应用中创建一个随时可访问且无需登录的URL。如果您使用的是Spring或任何其他框架,请说明这一点很好,因为我可以告诉您如何执行此操作。

有很多方法可以给这只猫上皮。让我知道您正在使用的技术,也许我们可以从那里开始。我们已经实现了您现在的要求。

谢谢。