我使用Apache蜡染到SVG转换成PDF的项目之一。 在项目运行的Spring应用中的Tomcat 7一切正常,这在Ubuntu下运行在Tomcat中使用$ CATALINA_HOME /斌/ startup.sh正在启动开发机器上确定。 但是,当我尝试运行在CentOS 6和Tomcat生产服务器上的应用程序中使用开始service tomcat7 start
命令的应用分为上convertation无限循环。 我试着调试问题,发现这段代码:
/**
* 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(".").getAbsoluteFile().toURI();
与结果thisUri
被指派~/tomcat/bin/.
夹。 当应用程序在生产机器上运行它被赋予/.
值。 我认为这是主要的问题,因为价值thisUri
是在FOP开始搜索字体和上机生产,这是文件系统,对整个FS结构递归搜索是很慢的根文件夹。 我尝试添加fop.xconf
文件到WEB-INF
使用字体的配置目录,但它并没有影响FOP的行为。 我不能,因为我开始开发机上生产服务器上启动Tomcat一样。 对如何配置针对的字体扫描的基本目录任何人的想法? 还是我做错了什么?