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

如果图片没有显示在这里是一个描述:

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

选项:

获取

参数:

名称=编号

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(仍在开发中)。

请您参考如下方法:

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

  • 完全忽略证书(请注意,忽略错误会使您容易受到 MITM 攻击)
  • 将证书添加到相应 JVM 的 keystore

有关更多详细信息,请查看此处:How to ignore PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException?


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!