【问题标题】:Barcode4j not working (on Unix)Barcode4j 不工作(在 Unix 上)
【发布时间】:2011-12-10 06:34:41
【问题描述】:

对于我的项目,我需要为 PDF 生成条形码。

我已经能够在本地 Windows 服务器上成功生成条形码,但在生产 UNIX 服务器上,生成失败。

我使用barcode4j,需要生成code39。

我的模板:

<xsl:stylesheet version="1.1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:fo="http://www.w3.org/1999/XSL/Format" 
    xmlns:bc="http://barcode4j.krysalis.org/ns" 
    xmlns:barcode="org.krysalis.barcode4j.xalan.BarcodeExt" 
    extension-element-prefixes="barcode"
    exclude-result-prefixes="fo">
    <xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" indent="yes"/>
    <xsl:param name="versionParam" select="'1.0'"/> 

    <xsl:template match="anforderung">
        <xsl:call-template name="barcode">
        <xsl:with-param name="code" select="barcode/code" />
        <xsl:with-param name="codeoriginal" select="barcode/codeoriginal" />
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="barcode">
        <xsl:param name="code" />
        <xsl:param name="codeoriginal" />
        <fo:block keep-together="always">
            <!-- message für barcode -->
            <xsl:variable name="barcode-cfg">
            <barcode>
                <code39>
                    <height>16mm</height>
                    <module-width>0.3mm</module-width>
                    <human-readable>
                        <placement>none</placement>
                    </human-readable>
                </code39>
            </barcode>
            </xsl:variable>

            <fo:block font-weight="bold" margin-left="0.3in">
                <fo:table table-layout='fixed' width="100%">
                    <fo:table-column column-width="8.2cm" />
                    <fo:table-column column-width="12cm" />
                    <fo:table-body>
                        <fo:table-row>
                            <fo:table-cell>
                                <fo:block>
                                    <fo:instream-foreign-object>
                                        <xsl:variable name="bc" select="barcode:generate($barcode-cfg, barcode/code)" />
                                        <xsl:copy-of select="$bc" />
                                        <!--xsl:copy-of select="barcode:generate(barcode-cfg, msg)"/-->
                                    </fo:instream-foreign-object>
                                </fo:block>
                            </fo:table-cell>
                            <fo:table-cell>
                                <fo:block text-align="justify" font-size="32pt">
                                    <xsl:value-of select="$codeoriginal" />
                                </fo:block>
                            </fo:table-cell>
                        </fo:table-row>
                    </fo:table-body>
                </fo:table>
            </fo:block>
        </fo:block>
    </xsl:template>

我的图书馆:

  • barcode4j-fop-ext-complete-2.0
  • xalan
  • xercesImpl
  • xml-apis
  • xml-apis-ext

【问题讨论】:

  • 有什么问题?你有例外吗?
  • 嗨 AlexR,感谢您的回复,它在 SystemErr.log 中显示消息错误,如下所示“第 61 行;第 79 列(“barcode:generate(barcode-cfg, msg)”) ; java.lang.NoSuchMethodError: org/apache/avalon/framework/configuration/DefaultConfiguration.(Ljava/lang/String;)V" 此致,Eiam

标签: java barcode xsl-fo apache-fop xalan


【解决方案1】:

也许检查您正在运行的 java 版本(java -version)。

例如,如果您使用 GJC,某些程序将无法正常运行。在这种情况下,请获取 OpenJDK 或 Oracle JDK,然后重试。

【讨论】:

  • 您好 Danpaq,谢谢您的回复,但是我已经检查了服务器上的 java 版本。它与本地(1.6)上的Java版本相同。你有别的想法吗?亲切的问候,Eiam
【解决方案2】:

Avalon Framework 类 DefaultConfiguration 中的 NoSuchMethodError 意味着您可能在类路径中有较旧的 Avalon Framework。请确保您拥有 Avalon Framework 4.2.0 或更高版本。您可以在 Barcode4J 的 lib 目录中找到它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    相关资源
    最近更新 更多