Java FOP无法从url加载图像
我有一个返回图像的web api。我正在尝试将其集成到我的FO模板中Java FOP无法从url加载图像,java,xslt,apache-fop,Java,Xslt,Apache Fop,我有一个返回图像的web api。我正在尝试将其集成到我的FO模板中 <fo:block font-weight="normal" text-align="left"> <fo:external-graphic src="url({$URL})"> </fo:external-graphic> </fo:block> 其中$URL是“http://{servername}/images/{id}” 我得到以下错误: HTT
<fo:block font-weight="normal" text-align="left">
<fo:external-graphic src="url({$URL})">
</fo:external-graphic>
</fo:block>
其中$URL是“http://{servername}/images/{id}”
我得到以下错误:
HTTP状态500–内部服务器错误类型异常报告
消息Servlet执行引发异常
说明服务器遇到意外情况,导致
阻止它满足请求
例外情况
javax.servlet.ServletException:servlet执行引发异常
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因
java.lang.NoClassDefFoundError:
com/sun/media/jai/codec/FileCacheSeekableStream
我可以使用http://{servername}/images/{id}url直接访问图像,因此url是正确的 根本原因是FOP无法加载PDF文件的PNG图像。它与JPEG/BMP/GIF配合得很好
重要的一行是最后一行:您缺少JAI(Java Advanced Imaging)jar。您必须下载并将其放入(或链接)到
lib
文件夹中。谢谢,刚刚发布了问题的根本原因。从其他问题来看,JAI安装和JDK/JRE文件夹似乎存在问题。文档中并没有这样说:“通过图像I/O编解码器都支持PNG图像(ImageLoaderImageIO)并通过本机支持。PDF和PS输出可以支持FOP本机支持,并且可以通过内部编解码器(ImageLoaderPNG)或直接处理未编码的图像(ImageLoaderWPNG)启用FOP本机支持。wiki页面中提供了详细信息。支持透明性,但不保证适用于所有输出格式。“