Java 在Oracle数据库中使用Apache FOP生成包含SVG图像的PDF

Java 在Oracle数据库中使用Apache FOP生成包含SVG图像的PDF,java,oracle,svg,oracle11g,apache-fop,Java,Oracle,Svg,Oracle11g,Apache Fop,我正在尝试使用ApacheFop在Oracle11g数据库中生成PDF文档。我已使用loadjava工具将以下JAR文件中的类安装到我的模式中: commons-logging-1.0.4.jar commons-io-1.3.1.jar avalon-framework-4.2.0.jar xml-api-ext-1.3.04.jar xalan-2.7.0.jar 序列化程序-2.7.0.jar xmlgraphics-commons-1.5.jar 蜡染全部1.7.jar fop.jar

我正在尝试使用ApacheFop在Oracle11g数据库中生成PDF文档。我已使用loadjava工具将以下JAR文件中的类安装到我的模式中:

  • commons-logging-1.0.4.jar
  • commons-io-1.3.1.jar
  • avalon-framework-4.2.0.jar
  • xml-api-ext-1.3.04.jar
  • xalan-2.7.0.jar
  • 序列化程序-2.7.0.jar
  • xmlgraphics-commons-1.5.jar
  • 蜡染全部1.7.jar
  • fop.jar
  • 在数据库中,我可以生成没有图形的PDF文档。数据库(命令行)之外的相同代码创建包含所有相关图形的PDF文档

    在数据库中执行时,内联SVG图形似乎被忽略。在数据库之外,它们由蜡染正确渲染

    您是否成功地使用ApacheFop在Oracle数据库中生成了包含SVG图形的PDF文档?你能提出什么建议

    我有一个图形定义为
    。这将在数据库外部正确呈现,并在数据库内执行时导致权限错误:

    ORA-29532: Java call terminated by uncaught Java exception:
    javax.xml.transform.TransformerException:
    java.security.AccessControlException: the Permission 
    (java.lang.RuntimePermission getClassLoader) has not been granted to 
    ProtectionDomain  (null <no signer certificates>)
    
    com.sun.org.apache.xalan.internal.xsltc.trax.TemplatesImpl$TransletClassLoader@98644313
     <no principals>
     java.security.Permissions@b0558743 (
     (java.lang.RuntimePermission modifyThreadGroup)  
    (java.lang.RuntimePermission createSecurityManager)  
    (java.lang.RuntimePermission modifyThread)  
    (java.lang.RuntimePermission preferences)  
    (java.lang.RuntimePermission exitVM)  
    (java.util.PropertyPermission user.language write)  
    (java.util.PropertyPermission * read)  
    (oracle.aurora.security.JServerPermission LoadClassInPackage.*)
    )
    
    ORA-29532:Java调用被未捕获的Java异常终止:
    javax.xml.transform.TransformerException:
    java.security.AccessControlException:权限
    (java.lang.RuntimePermission getClassLoader)尚未授予
    ProtectionDomain(空)
    com.sun.org.apache.xalan.internal.xsltc.trax.templatesiml$TransletClassLoader@98644313
    java.security。Permissions@b0558743 (
    (java.lang.RuntimePermission modifyThreadGroup)
    (java.lang.RuntimePermission createSecurityManager)
    (java.lang.RuntimePermission modifyThread)
    (java.lang.RuntimePermission首选项)
    (java.lang.RuntimePermission exitVM)
    (java.util.PropertyPermission user.language write)
    (java.util.PropertyPermission*读取)
    (oracle.aurora.security.JServerPermission LoadClassInPackage.*)
    )
    
    在数据库中,我知道如何向我的模式授予权限;但是,我不知道如何将getClassLoader授予我加载的代码库

    注意:更改上面内联图形的url以明确请求 url(“数据:image/png;base64,ivborw0kggoaaansuheuga…”)似乎已修复此图像的问题


    谢谢

    我确定了
    内联图像的问题:问题在于src属性,该属性最初是在没有url(“…”)的情况下指定的。将url()添加到src属性可以在数据库中运行时解析图像

    在数据库中运行时,我仍然无法获得要渲染的内联SVG图形