我在其中一个项目中使用Apache Batik将SVG转换为PDF。该项目是在Tomcat7中运行的Spring应用程序。在Ubuntu下运行的开发机器上一切正常,Tomcat使用$CATALINA_HOME/bin/startup启动。但是当我尝试在CentOS 6的生产服务器上运行应用程序,Tomcat使用服务tomcat7 start
命令启动时,应用程序在转换时陷入无限循环。我试着调试这个问题,发现了以下代码:
/**
* Creates the {@link FontInfo} instance for the given configuration.
* @param cfg the configuration
* @param useComplexScriptFeatures true if complex script features enabled
* @return the font collection
* @throws FOPException if an error occurs while setting up the fonts
*/
public static FontInfo createFontInfo(Configuration cfg, boolean useComplexScriptFeatures)
throws FOPException {
FontInfo fontInfo = new FontInfo();
final boolean strict = false;
if (cfg != null) {
URI thisUri = new File(".").getAbsoluteFile().toURI();
InternalResourceResolver resourceResolver
= ResourceResolverFactory.createDefaultInternalResourceResolver(thisUri);
//TODO The following could be optimized by retaining the FontManager somewhere
FontManager fontManager = new FontManager(resourceResolver, FontDetectorFactory.createDefault(),
FontCacheManagerFactory.createDefault());
//TODO Make use of fontBaseURL, font substitution and referencing configuration
//Requires a change to the expected configuration layout
DefaultFontConfig.DefaultFontConfigParser parser
= new DefaultFontConfig.DefaultFontConfigParser();
DefaultFontConfig fontInfoConfig = parser.parse(cfg, strict);
DefaultFontConfigurator fontInfoConfigurator
= new DefaultFontConfigurator(fontManager, null, strict);
List<EmbedFontInfo> fontInfoList = fontInfoConfigurator.configure(fontInfoConfig);
fontManager.saveCache();
FontSetup.setup(fontInfo, fontInfoList, resourceResolver, useComplexScriptFeatures);
} else {
FontSetup.setup(fontInfo, useComplexScriptFeatures);
}
return fontInfo;
}
在PDFDocumentGraphics2DConfigurator
类中。当我在开发人员机器上运行应用程序时,行URI thisUri=new File("."). getAbsolteFile(). toURI();
结果为thisUri
分配了~/tomcat/bin/.
文件夹。当应用程序在生产机器上运行时,它被分配了/.
值。我认为这是主要的问题,因为thisUri
的值是FOP开始字体搜索的文件夹,在生产机器上这是文件系统的根,在整个FS结构上的递归搜索非常慢。我试图用字体配置将fop.xconf
文件添加到WEB-INF
目录,但它不影响FOP的行为。我不能像在开发机器上一样在正式服上启动Tomcat。有人知道如何配置FOR字体扫描的基本目录吗?或者我做错了什么?
正如使用boto3完全扫描dynamoDb中所解释的,我构建了一个解决方案,使用某些条件完全扫描dynamoDb表。这是我的代码: 但是当代码被执行时,它会进入一个无限循环。这是LastEvaluatedKey每次迭代的输出: 它一直在这两对之间循环。 编辑: 我添加了do_scan方法。
我有以下fop.conf,在Windows下工作正常: 但是因为应用程序还需要在没有提供Arial的操作系统上运行,所以我决定在Java应用程序的< code > src/main/resources/fonts/Arial . TTF 中添加一个字体。 所以我试着这样引用字体: 但它不使用字体。 调试时,我看到fopFactoryBuilder有一个名为< code>baseUri的字段,是否可
问题内容: 我正在用Java写一个简单的程序,它需要从文本文件中读取数据。但是,我在计算行数时遇到了麻烦。对于一个简单的Google搜索来说,这个问题似乎已经足够普遍了,但是我什至没有在搜索正确的东西。 我正在学习的教科书建议要计算文本文件中的行数,您应该执行以下操作: 在我看来,这是问题所在。我认为无限运行。我在代码中使用的数据文件肯定具有有限数量的数据行。 我该怎么办? 问题答案: 第一次调用
问题内容: 我已经将laravel存储库克隆到了CentOS 7盒中。当我尝试运行它时,出现500错误,但未显示任何内容。 因此,我进行了检查,发现有一些权限错误: 我做了以下尝试来克服这些问题: 所以现在显示如下: 但这没有用。 有趣的是,我之前输入了一些错误的命令,这些命令似乎将日志添加到日志文件中。 问题答案: 我找到了答案,解决了我的问题。 通过关闭命令来证明这是问题所在 这应该允许写入,
我正在尝试编写使用Scanner类从用户那里获取输入的代码。但是hasNext()、hasNextInt()和hasNextLine()每次都会运行无限循环。
我制作了一个简单的程序,根据公式中的3个数字计算增量。但是,小数点后的分数和数字(如3.33、3/4)有问题。如果我将其替换为任何字母,则会出现错误: 线程“main”java中出现异常。util。java上的InputMismatchException。base/java。util。扫描仪。throwFor(Scanner.java:939)访问java。base/java。util。扫描仪。下