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

gor*_*613 7 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>
Run Code Online (Sandbox Code Playgroud)

(请注意,即使我在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. 贾斯珀展示报告

实现这一目标的最佳方法是什么?

小智 0

我认为做到这一点的最好方法是:

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

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

谢谢。