当前位置: 首页 > 知识库问答 >
问题:

Jasper 与其他应用程序之间的通信

公冶经纶
2023-03-14

我有Jasper Reports服务器(安装在www.example.net上)和一个单独的Java/JSP应用程序(安装在www.example.net上),我在寻找不同的选项来生成报告。

选项1(当前工作解决方案)

我目前的工作解决方案是用户登录到Java /JSP应用程序,并选择一个报告。应用程序创建报告的XML表示,并将其保存为fileNameXML,然后使用以下代码将其发送到Jasper报告服务器:

     <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中传递用户名和密码,安全性也不会受到损害,因为文件名XML是使用字符串文件名= UUID.randomUUID().toString()文件扩展创建的)

选项2

我将Jasper Reports服务器直接连接到www.example.net上的SQL Server数据库,并以这种方式生成报告。这种方法的缺点是:( a)我需要设置Jasper报告中的所有用户;( b)我需要以安全的方式传递参数,这样每个用户只能访问他们自己的数据;( c)我只能访问数据库,而不能访问应用程序的计算

我的理想解决方案

然而,我真的希望能够通过Jasper访问我的应用程序的计算,并绕过登录到我的应用程序。

这样做的一个好处是,我的应用程序还没有适当的移动访问权限,用户可以下载Jasper mobile application应用程序并从那里访问报告。

这将涉及以下方面:

  1. 用户登录Jasper
  2. 用户选择报告
  3. Jasper使用某些参数调用我的应用程序
  4. 应用程序创建xml文件
  5. 应用程序返回指向此文件的链接
  6. Jasper展示报告

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

共有1个答案

李洋
2023-03-14

我认为最好的方法是:

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

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

谢谢。

 类似资料:
  • 问题内容: 我试图弄清楚如何通过使用Android应用程序在网页上显示实时数据。 例如,用户正在使用android应用并获得评分(回答问题)。我的网页将实时显示分数。 IV得出使用Redis的结论,但是我需要什么才能使其正常工作?我是否需要一个可与我的网页进行通信的Web套接字。这个套接字可以是python,它在其中访问数据库,然后按顺序响应分数? 我正在努力寻找这种方法到底是怎么工作的,因为这对

  • 问题内容: 我有一个正在运行的Flask应用程序,该应用程序是根据我们在网上和Miguel Grinberg的“ Flask Web开发”书中找到的最佳实践组合设置的。 现在,我们需要第二个Python应用程序,它不是Web应用程序,并且需要访问与Flask应用程序相同的模型。我们想重复使用相同的课程模型,因此两个应用程序都可以从共享代码中受益。 我们删除了关于flask- sqlalchemy扩

  • 问题内容: 在Windows上,我们有一个C ++应用程序来启动Java进程。这两个应用程序需要彼此通信(通过xml片段)。 您将选择哪种进程间通信方法,为什么? 我们桌上的方法是:共享文件,管道和套接字(尽管我认为这有一些安全问题)。我愿意接受其他方法。 问题答案: 我不确定为什么您认为基于套接字的通信会带来安全隐患(使用SSL)。假设您具有明确定义的通信协议,这通常是一种非常好的方法,因为它与

  • 我有一个应用程序,有功能安装其他应用程序时,用户的要求。但它不会将用户重定向到Play Store,只需下载apk并安装即可。当我这样做时,如果我使用搜索栏搜索它,播放商店就会识别它已经安装了,但它不会在“我的应用程序”中显示该应用程序,并且当有任何更新时也不会更新这个已安装的应用程序。

  • 我在一个活动和一个服务(位于另一个应用程序中)之间创建了一个通信。当我的服务从活动得到一个调用时,它会生成一个新线程来执行一个任务。通常情况下,完成这个任务需要3秒。 当来自活动的消息来到服务时,我们持有它。并检查此消息的replyTo是否为空。replyTo不为空。(行) 当任务完成时,它通知承载它的类。它将调用方法更新。在handleMessage方法中,replyTo不为空。但是,3秒后,在

  • 问题内容: 我在学校得到一个项目,该项目由可通过WiFi控制的遥控车组成。它可以正常工作几秒钟,但随后它会停止连接并尝试重新连接。问题是,如果我制造的汽车依赖于这种不稳定的连接,可能会导致事故。本身或一个人。 也许我做错了什么?我的问题是,我如何始终保持该连接处于活动状态?到目前为止,这是我的程序: Arduino客户端: Java服务器: 干杯! -kad 问题答案: 我解决了它,做到了这一点,