Java FOP无法从url加载图像

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

我有一个返回图像的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}”

我得到以下错误:

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页面中提供了详细信息。支持透明性,但不保证适用于所有输出格式。“