0

我正在尝试将 Jaspersoft Studio 6.2 中的“XML 文件”数据源添加到报告中,该报告实际上是对需要单个参数作为路径一部分的 REST 服务的调用。

数据适配器向导

如果图像未在此处显示,则说明:

我使用的网址是这样的:http://.../service/rest/report/

选项:

得到

范围:

名称=id

value=$P{ReportID}(该参数已使用默认值创建)

当我尝试测试它时,会发生这种情况

net.sf.jasperreports.engine.JRRuntimeException: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at net.sf.jasperreports.data.http.HttpDataConnection.getInputStream(HttpDataConnection.java:101)
at net.sf.jasperreports.data.DataFileStream.<init>(DataFileStream.java:47)
at net.sf.jasperreports.data.DataFileUtils.getDataStream(DataFileUtils.java:62)
at net.sf.jasperreports.data.xml.XmlDataAdapterService.loadDataDocument(XmlDataAdapterService.java:140)
at net.sf.jasperreports.data.xml.XmlDataAdapterService.contributeParameters(XmlDataAdapterService.java:70)
at net.sf.jasperreports.data.AbstractDataAdapterService.test(AbstractDataAdapterService.java:105)
at com.jaspersoft.studio.data.wizard.AbstractDataAdapterWizard$3.runOperations(AbstractDataAdapterWizard.java:162)
at com.jaspersoft.studio.utils.jobs.CheckedRunnableWithProgress$1.run(CheckedRunnableWithProgress.java:59)
at java.lang.Thread.run(Thread.java:745)

我知道这应该有效。我可以在浏览器中调用该服务.../report/?id=xx并取回预期的 XML 数据。我还使用 community.jaspersoft.com 站点上的“WebService 数据源”插件对此进行了测试——它在 Studio 应用程序中也能正常工作(但我无法在服务器上配置它)。

所以问题是,我该如何解决这个 SSL 异常?我的应用服务器是内部的,不使用 SSL(仍在开发中)。

4

1 回答 1

0

有两种方法可以解决这个问题:

  • 一起忽略证书(请注意,忽略错误会使您容易受到 MITM攻击)
  • 将证书添加到相应 JVM 的密钥库中

有关更多详细信息,请查看此处:如何忽略 PKIX 路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException?

于 2016-05-12T09:07:21.333 回答