java - 我应该在 apache fop 的类路径中包含哪些 jar

标签 java websphere-7 apache-fop

我在 Apache-FOP 中遇到 ClassNotFoundException 我已将 fop.jar 包含在 websphere 7.0 的 WEB-INF lib 目录中。我将 xmlgraphics-commons-1.4.jar 添加到我的库中,然后它抛出验证错误。

由:java.lang.VerifyError: JVMVRFY012堆栈形状不一致引起;类=org/apache/fop/fo/ElementMappingRegistry,方法=findFOMaker(Ljava/lang/String;Ljava/lang/String;Lorg/xml/sax/Locator;)Lorg/apache/fop/fo/ElementMapping$Maker;, pc=127

Caused by: java.lang.NoClassDefFoundError: org.apache.xmlgraphics.image.loader.ImageContext
    at java.lang.ClassLoader.defineClassImpl(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:274)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:69)
    at com.ibm.ws.classloader.CompoundClassLoader._defineClass(CompoundClassLoader.java:768)
    at com.ibm.ws.classloader.CompoundClassLoader.localFindClass(CompoundClassLoader.java:687)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:510)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
    at cat.gis.portal.servicehistory.controllers.EquipmentServiceHistoryDetailsViewController.generatePDF(EquipmentServiceHistoryDetailsViewController.java:281)
    at cat.gis.portal.servicehistory.controllers.EquipmentServiceHistoryDetailsViewController.workOrderDetailsView(EquipmentServiceHistoryDetailsViewController.java:205)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:600)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:362)
    at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.doHandle(AnnotationMethodHandlerAdapter.java:349)
    at org.springframework.web.portlet.mvc.annotation.AnnotationMethodHandlerAdapter.handleResource(AnnotationMethodHandlerAdapter.java:296)
    at org.springframework.web.portlet.DispatcherPortlet.doResourceService(DispatcherPortlet.java:825)
    ... 119 more
Caused by: java.lang.ClassNotFoundException: org.apache.xmlgraphics.image.loader.ImageContext
    at java.net.URLClassLoader.findClass(URLClassLoader.java:421)
    at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:191)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:652)
    at com.ibm.ws.bootstrap.ExtClassLoader.loadClass(ExtClassLoader.java:111)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
    at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:62)
    at com.ibm.ws.classloader.ProtectionClassLoader.loadClass(ProtectionClassLoader.java:58)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:540)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:508)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
    at com.ibm.ws.classloader.CompoundClassLoader.loadClass(CompoundClassLoader.java:508)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:618)
    ... 137 more

更新

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output encoding="iso-8859-1" />
<xsl:template match ="services">
    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
        <fo:layout-master-set>
            <fo:simple-page-master master-name="service">
                <fo:region-body></fo:region-body>
            </fo:simple-page-master>
        </fo:layout-master-set>

        <fo:page-sequence master-reference="service">
            <fo:flow flow-name="xsl-region-body">
                <fo:block>
                    <fo:table>
                        <fo:table-body>
                            <fo:table-row>
                                <fo:table-cell border="solid 1px black" 
                                text-align="center" font-weight="bold">
                                    <fo:block>Service Id</fo:block>
                                </fo:table-cell>
                                <fo:table-cell border="solid 1px black" 
                                text-align="center" font-weight="bold">
                                    <fo:block>Open Date</fo:block>
                                </fo:table-cell>
                                <fo:table-cell border="solid 1px black" 
                                text-align="center" font-weight="bold">
                                    <fo:block>Close Date</fo:block>
                                </fo:table-cell>                                    
                                <fo:table-cell border="solid 1px black" 
                                text-align="center" font-weight="bold">
                                    <fo:block>Order Status</fo:block>
                                </fo:table-cell>                                    
                                <fo:table-cell border="solid 1px black" 
                                text-align="center" font-weight="bold">
                                    <fo:block>Description</fo:block>
                                </fo:table-cell>
                                <fo:table-cell border="solid 1px black" 
                                text-align="center" font-weight="bold">
                                    <fo:block>Repair Cost</fo:block>
                                </fo:table-cell>
                            </fo:table-row>
                            <xsl:for-each select="./service">
                                <fo:table-row>
                                    <fo:table-cell border="solid 1px bold" text-align="center">
                                        <fo:block><xsl:value-of select="serviceId" /></fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell border="solid 1px bold" text-align="center">
                                        <fo:block><xsl:value-of select="openDate" /></fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell border="solid 1px bold" text-align="center">
                                        <fo:block><xsl:value-of select="closeDate" /></fo:block>
                                    </fo:table-cell>                                
                                    <fo:table-cell border="solid 1px bold" text-align="center">
                                        <fo:block><xsl:value-of select="orderStatus" /></fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell border="solid 1px bold" text-align="center">
                                        <fo:block><xsl:value-of select="description" /></fo:block>
                                    </fo:table-cell>
                                    <fo:table-cell border="solid 1px bold" text-align="center">
                                        <fo:block><xsl:value-of select="repairCost" /></fo:block>
                                    </fo:table-cell>
                                </fo:table-row>
                            </xsl:for-each>
                        </fo:table-body>
                    </fo:table>
                </fo:block>
            </fo:flow>
        </fo:page-sequence>
    </fo:root>
</xsl:template>
</xsl:stylesheet>

最佳答案

请记住,jar 文件主要只是一个带有 list 的 zip 文件:使用您最喜欢的解压缩工具解压 jar,查看 META-INF/MANIFEST.MF 文件,然后检查类路径上的所有内容都存在。对于我(FOP 1.0)来说,类路径条目是这样的:

类路径:avalon-framework-4.2.0.jar batik-all-1.7.jar commons-io-1。 3.1.jar commons-logging-1.0.4.jar fop-hyph.jar serializer-2.7.0.jar ervlet-2.2.jar xalan-2.7.0.jar xercesImpl-2.7.1.jar xml-apis-1.3.04.j ar xml-apis-ext-1.3.04.jar xmlgraphics-commons-1.4.jar

关于java - 我应该在 apache fop 的类路径中包含哪些 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690735/

相关文章:

java - 为什么无状态 session bean 是单线程的?

java - 通过单击一个 fragment 中的按钮并更改 android studio 中的底部导航图标,从一个 fragment 重定向到另一个 fragment

websphere - 无法从 RAD 7.5 中运行 Websphere 7.0 的配置文件管理工具

java - EC_GENERIC_REDIRECTVIEW 仅在生产服务器上且加载 30 秒后不起作用

java - Minecraft Forge 自定义播放器命令问题

java - 如何减少hibernate搜索(lucene)中的结果集?

Websphere:管理代理配置文件和部署配置文件之间的区别?

pdf-generation - XSLT FOP : force page break within fo:block

java - 如何禁用 FOP 的 strerr 日志记录输出?

Apache FOP - 不接受自定义字体