当前位置: 首页 > 知识库问答 >
问题:

fop 2.1在weblogic服务器上加载字体时达到EOF

景阳曜
2023-03-14

我有一个生成PDF文件的webapp。我为此使用fop 2.1,但有些字符不是默认的fop字体。我尝试使用其他字体,以正确打印所有字符。

如果我在我的PC上执行的测试类中尝试它,一切都很好。但是如果应用程序试图在weblogic服务器上做同样的事情,我会收到:Java . io . EOF exception:Reached EOF,file size = 23275952 offset = 23275954错误。

我的fop配置(我在测试和应用程序中使用相同的配置):

<fop version="2.1">
    <use-cache>false</use-cache>
    <renderers>
        <renderer mime="application/pdf">
            <fonts>
                <font embed-url="urkunde/ClearSans-Regular.ttf" kerning="yes">
                    <font-triplet name="ClearSans" style="normal" weight="normal" />
                </font>
            </fonts>
        </renderer>
    </renderers>
</fop>

服务器尝试加载字体时收到的错误:

2016年3月24日下午1:07:33 org.apache.fop.fonts.truetype。OpenFont readPostScript严重:未知PostScript格式:1912630528 2016年3月24日下午1:07:33 org.apache.fop.fonts。LazyFont加载严重:无法读取字体度量文件null java.io。EOF异常:已达到EOF,org.apache.fop.fonts.truetype.FontFileReader.seekSet(FontFileReader.java:58)位于org.apacche.fop.fop.fonts.truetype.TTFFile.readName(TTFFile.java:57)位于org.apache.fop.fonts.truetype.OpenFont.readFont(OpenFont.java=740)位于org.pache.fop.fonts.truretype.OFFontLoader.read(OFFontLoader.java:109)位于org.epache.fop.fonts.truetype。OFFontLoader.read(OFFontLoader.java:93)在org.apache.fop.fonts.FontLoader.getFont(FontLoander.java:124),在org.aapache.fop.fonts.FontLoader.getAscender(LazyFont.java:116),在组织.apache-fop.fonts.LazyFont.load(Lazy Font.japa:116),在.org.apache/fop.fonts,在org.papache.fop.fonts.fonts.Font.getAssender(Font.jafa:233),在Or.apache.pop.layoutmgr.BlockLayoutManager.initialize(BlockLayoutManager.java:82)位于org.apache.fop.layoutmgr.AbstractLayoutManager.getChildLMorg.apache.fop.layoutmgr.AbstractBreaker.getNextBlockList(AbstractBroker.java:752),位于org.apacche.fop.layoutmgr.doLayout(Abstract Breaker.java:180),位于.org.apache.pop.layoutmgr.PageBreaker.getNextBlockList,位于org.apache.fop.loyoutmgr.AbstractBreaker。在org.apache.fop.layoutmgr.PageSequenceLayoutManager.activateLayout(PageSequence LayoutManager.java:138)位于org.apacher.fop.area.AreaTreeHandler.endPageSequency(AreaTree Handler.java:267)位于org.apache.fop.fop.pagination.PageSession.endOfNode(PageSession.java:130)位于org.pache.fop.FOTreeBuilder$MainFOHandler.endElement(FOTreeBuilder.java:360)(FOTreeBuilder.java:190),位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocamentScannerimpl.java:1782),位于com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocamentScannerimpl.java:2939),网址为com.sunorg.apache.exerces.internal.empl.XMldocumentScanner impl.next(XML文档扫描器impl.java:648)com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocamentScannerimpl.java:511)位于com.sunorg.apache.exerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)位于com.sun.org.aaphe.exers.internal.parserscom.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)位于com.sunorg.apache.exerces.internal.javp.SXParserImpl$JAXPSAXParser.parse(SAXParrerImpl.java:522)位于weblogic.xml.javp.WebLogicXMLReader.parse(WebLogicXML阅读器.java:133)位于weblogic.xml.javp.RegistryXMLReader.parse d)在org.apache.xalan.transformer.TransformerIdentityImpl.transfform(TransformerIdentityImpl.java:484)

我也用其他字体尝试过它。当我测试时效果很好,但在服务器上我收到了负面ArraySizeExc的消息。

我不知道我错过了什么。

有什么建议吗?

共有2个答案

高博涉
2023-03-14

我解决了它。问题是,字体在耳朵和战争文件中。如果字体只在服务器上,它工作正常。

周博达
2023-03-14

另一个解决方案是在maven配置中跳过ttf过滤:

<plugin>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <encoding>UTF-8</encoding>
        <nonFilteredFileExtensions>
            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>

使用此配置,您可以将ttf保留在耳/战包内。

 类似资料:
  • 我试图从jenkins取消部署到weblogic服务器,我的脚本是java-cp d:\jenkins\adatory\wlfullclient.jar weblogic.deployer-debug-remote-verbose-undeploy-name mts-appversion 4.5.9.0.5-targets MTS-APP-01,MTS-JOB-01,mtssws-app-01,m

  • 在启动节点管理器之后,当我要启动startWeblogic时。sh发生这种情况时,服务器无法启动。(用户名、密码正确) 以行开始WLS:home/app/oracle/java/jdk1.8.0_171/bin/java-server-Xms256m-Xmx512m-XX:CompileThreshold=8000-cp/home/12c/app/oracle/product/12.2.1/wls

  • 我已经在我的机器上安装了Weblogic server。安装时,我已使用名称MyDomain配置域。在配置结束时,我检查了启动管理服务器。服务器成功启动,没有问题。第二天,我尝试使用C:\ProgramData\Microsoft\Windows\start Menu\Programs\Oracle Enterprise Pack for Eclipse\User Projects\MyDomai

  • 我试图在shell脚本中运行下面的命令,但遇到了如下错误:错误:无法找到或加载主类weblogic。管理 ${SUN\u JAVA\u HOME}/bin/JAVA-classpath$classpath-weblogic。Admin-url t3://localhost:7001-用户名weblogic-密码weblogic123 PING 有人能对此发表评论吗

  • web.xml weblogic.xml

  • 我已经在我的Windows7机器上安装了WebLogic12C(12.1.3)。在创建管理服务器并登录之后,我试图创建一个新的托管服务器。但是当我按下create按钮时,显示加载符号需要花费大量时间,最后给出等待完成的错误超时:Activate state:STATE_DISTRIBUTED Target Servers states:AdminServer STATE_DISTRIBUTED。早