- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 AWS Elasti Beanstalk 为我的一个应用程序提供支持。在此我需要将 svg 文档导出为 png、jpg、pdf 等。为此,我使用 Apache Batik 库。这在我的本地开发工作站上提供了出色的输出,但是一旦我将它部署到 EBS 上,我就开始出现错误,所有这些都与字体有关。
错误堆栈跟踪是 -
Caused by: java.lang.Error: Probable fatal error:No fonts found.
at sun.font.FontManager.getDefaultPhysicalFont(FontManager.java:1088)
at sun.font.FontManager.initialiseDeferredFont(FontManager.java:960)
at sun.font.FontManager.findOtherDeferredFont(FontManager.java:899)
at sun.font.FontManager.findDeferredFont(FontManager.java:916)
...
at sun.font.FontManager.findFont2D(FontManager.java:1904)
at sun.font.FontManager.initialiseDeferredFonts(FontManager.java:792)
at sun.java2d.SunGraphicsEnvironment.loadFonts(SunGraphicsEnvironment.java:468)
at sun.awt.X11GraphicsEnvironment.loadFonts(X11GraphicsEnvironment.java:925)
at sun.java2d.SunGraphicsEnvironment.loadFontFiles(SunGraphicsEnvironment.java:498)
at sun.java2d.SunGraphicsEnvironment.getInstalledFontFamilyNames(SunGraphicsEnvironment.java:721)
at sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:746)
at sun.java2d.SunGraphicsEnvironment.getAvailableFontFamilyNames(SunGraphicsEnvironment.java:773)
at sun.java2d.HeadlessGraphicsEnvironment.getAvailableFontFamilyNames(HeadlessGraphicsEnvironment.java:99)
at org.apache.batik.gvt.font.FontFamilyResolver.(FontFamilyResolver.java:74)
at org.apache.batik.bridge.SVGTextElementBridge.getFontList(SVGTextElementBridge.java:1529)
at org.apache.batik.bridge.SVGTextElementBridge.getAttributeMap(SVGTextElementBridge.java:1610)
at org.apache.batik.bridge.SVGTextElementBridge.fillAttributedStringBuffer(SVGTextElementBridge.java:902)
at org.apache.batik.bridge.SVGTextElementBridge.buildAttributedString(SVGTextElementBridge.java:856)
at org.apache.batik.bridge.SVGTextElementBridge.computeLaidoutText(SVGTextElementBridge.java:636)
at org.apache.batik.bridge.SVGTextElementBridge.buildGraphicsNode(SVGTextElementBridge.java:292)
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:224)
at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171)
at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:208)
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:92)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
所以我尝试将字体安装为 one other stackoverflow answer suggests.但这给了我一个新的错误堆栈跟踪 -
Caused by: java.lang.NoClassDefFoundError:
Could not initialize class org.apache.batik.gvt.font.FontFamilyResolver
at org.apache.batik.bridge.SVGTextElementBridge.getFontList(Unknown Source)
at org.apache.batik.bridge.SVGTextElementBridge.getAttributeMap(Unknown Source)
at org.apache.batik.bridge.SVGTextElementBridge.fillAttributedStringBuffer(Unknown Source)
at org.apache.batik.bridge.SVGTextElementBridge.buildAttributedString(Unknown Source)
at org.apache.batik.bridge.SVGTextElementBridge.computeLaidoutText(Unknown Source)
at org.apache.batik.bridge.SVGTextElementBridge.buildGraphicsNode(Unknown Source)
at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(Unknown Source)
at org.apache.batik.bridge.GVTBuilder.buildComposite(Unknown Source)
at org.apache.batik.bridge.GVTBuilder.build(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(Unknown Source)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(Unknown Source)
我不明白为什么会这样。然后我在调用 batik 的代码转换器之前设置了 System.setProperty("java.awt.headless", "true");
。但这也会生成上述错误消息。我的选项用完了。
我错过了什么吗?我可以做些什么来为此添加更多上下文吗?感谢您的帮助。
最佳答案
我在我的 maven pom.xml 文件中添加了以下依赖项,它似乎使该类可供使用:
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-gvt</artifactId>
<version>1.7</version>
</dependency>
但是请注意,它映射到的字体并不总是与 MS 核心字体(arial、times new roman 等)具有相同的尺寸,因此看起来可能有点 block 状或与它们的字体不同正在更换。
关于java - AWS ElasticBeanstalk 实例上的 Apache Batik 库出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940455/
得到这个错误: Command hooks (directoryHooksExecutor.py --path /opt/elasticbeanstalk/hooks/appdeploy/pre/)
我正在尝试部署一个基于 Docker 的环境,该环境在 AWS elasticbeanstalk 中使用 1-1 应用程序负载均衡器。我收到以下错误消息。之前似乎部署得很好,但由于未知原因,新部署失败
我的docker文件如下 FROM node:16.16.0 as ui WORKDIR /app COPY ./ui/package.json . RUN npm install COPY ./ui
我有一个 CloudFormation 模板 yml 文件,它为 ElasticBeanstalk 应用程序传递 OptionSettings。我可以对值进行硬编码,并且可以从参数传递值。但是,我无法
在将新的应用程序版本部署到我们的 elasticbeanstalk 环境(Tomcat 7、Java 6)时,我们发现抛出以下错误。 正在运行的后端 EC2 实例上的 eb-version-deplo
如何在正在运行的应用程序 (Spring Boot) 中以编程方式添加更多实例(向上扩展)ElasticBeanStalk 环境? 我想过使用 AWSElasticBeanstalkClient,但找
我有一个通过 AWS Elastic Beanstalk 和 Git 启动的应用程序。我最近了解了他们的配置文件以及您可以使用它们执行的一些操作。 我有一些需要特定权限的文件。当我执行 git aws
我尝试按如下方式为 ElasticBeanstalk 运行 DescribeConfigurationSettings API 方法: AWSElasticBeanstalk ebs = AWSEla
我正在使用 elasticbeanstalk 通过 AWS 托管一个应用程序。我正在使用工具带从我的本地机器推送我的应用程序。直到几周前,一切正常,但最近我的更改没有生效。我可以在 aws 管理控制台
我正在将 Rails 应用程序部署到 AWS。其中一个 gem 具有依赖性,需要在部署期间运行 bundle install 之前在服务器上安装某些文件。在我的 .ebextensions 文件中,我
我正在尝试新的 AWS Elastic Beanstalk 控制台用户界面。我现在在设置时遇到问题 虚拟路径 在用户界面上。 基本上我把我所有的静态文件,包括 index.html 放在一个文件夹 u
我正在尝试在 Amazon Elastic Beanstalk 上托管的 token 自动售货机上启用 SSL。但是,如果我尝试启用端口 443 监听器,它会告诉我需要 SSL 证书。 如果我有自己的
我构建了一个在AWS中运行的Docker镜像。 在Dockerfile中,我放置了一些命令,这些命令可以从某些网站下载某些资源,因此很显然,如果这些网站由于某种原因而关闭,则生成一个运行该镜像的新节点
有谁知道当应用程序在AWS Elasticbeanstalk上运行时如何从资源文件夹中读取文件? 请参阅下面的代码: Resource resource = new ClassPathResource
我尝试开发一个Elastic beanstalk客户端接口(interface),通过它连接到我的亚马逊帐户elasticbeanstalk。我使用了脚本文件 credentials.Csl 中的帐户
我正在运行带有 React 前端的 Spring Boot 服务器。我已将 React 项目构建为生产环境,并将构建内容复制到 Spring 项目中的 Webapp 文件夹中。当我在本地运行它时,它运
我最近创建了一个 AWS CodePipeline 管道,可以从 Github 拉取、使用 Jenkins/Maven 构建并部署到现有的 ElasticBeanstalk 项目。构建步骤的输出和部署
我想更改 Elastic Beanstalk 实例上 $JAVA_HOME/jre/lib/security/java.security 中的 securerandom.source 值。 如何通过
我应该如何在 AWS 上配置我的 ElasticBeanstalk 以允许 URL 中的编码斜线?(使用 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENC
我想要将 ElasticBeanstalk 与预定义配置“Node.js”和“64 位 Amazon Linux 2014.09 v1.0.9”一起使用。问题是我的 NodeJS 应用程序使用需要 G
我是一名优秀的程序员,十分优秀!