Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jasper:从url打开输入流时出错_Url_Input_Jasper Reports - Fatal编程技术网

Jasper:从url打开输入流时出错

Jasper:从url打开输入流时出错,url,input,jasper-reports,Url,Input,Jasper Reports,我正在使用iReport设计jasper报告,它接受一个参数并从给定URL获取一个图像: 该参数是twitter中用户的屏幕名称,url是其个人资料图像 <image> <reportElement x="4" y="51" width="73" height="64"/> <imageExpression><![CDATA["https://api.twitter.com/1/users/profile_im

我正在使用iReport设计jasper报告,它接受一个参数并从给定URL获取一个图像:

该参数是twitter中用户的屏幕名称,url是其个人资料图像

    <image>
       <reportElement x="4" y="51" width="73" height="64"/>
           <imageExpression><![CDATA["https://api.twitter.com/1/users/profile_image?screen_name="+$F{user_screen_name}+"&size=bigger"]]></imageExpression>
    </image>
如何在jrxml文件中处理这种情况

我想简单地添加一个固定的URL地址,以防找不到

有人有什么建议吗


谢谢大家!

我认为您需要添加一个额外的helper类来处理这个问题。您需要一个静态方法
boolean-urlExists(String-url)
,该方法允许您将其放入imageExpression中:

MyClass.urlExists($F{image_url}) ? $F{image_url} : $P{fallback_image}
这将是一个简单的类来编写。。。但显然,添加另一个.jar文件会增加复杂性。如果没有这个方法,我就看不到任何方法可以在.jrxml中进行处理。

在jrxml文件中, 要显示url资源中的图像,请使用图像表达式
url()

如下所示,例如,
$F{ADPN_NO}
是来自报告的参数

<imageExpression><![CDATA[new URL("http://anyserver:7001/images/"+$F{ADPN_NO}+".jpg")]]></imageExpression>

当出现
onError
错误时,它将显示空白项、图标或jrxml上设置的错误


另一种方式是,在jrxml文件之外,您可以使用java映射对象,该对象包含由
URL()
file()异常检查的img URL

在我的例子中,我有一个报告,我“注入”了图像的url,它导致了证书的错误(我“注入”的url有IP,它必须是证书的名称)。在我更改url后,它工作了

<imageExpression><![CDATA[new URL("http://anyserver:7001/images/"+$F{ADPN_NO}+".jpg")]]></imageExpression>