有关于AWS ElasticBeanstalk实例的问题与Apache蜡染库 [英] Having problems with Apache Batik library on AWS ElasticBeanstalk Instance

查看:911
本文介绍了有关于AWS ElasticBeanstalk实例的问题与Apache蜡染库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用AWS Elasti魔豆来驱动我的应用程序之一。在此,我需要一个SVG文档导出为PNG,JPG,PDF等。对于这一点,我使用Apache蜡染库。这提供了优异的输出我的本地开发工作站上,但只要我将它部署在EBS我开始得到错误,凡是涉及到字体。

I am using AWS Elasti Beanstalk to power one of my apps. In this I need to export a svg document to png,jpg, pdf etc. For this I use Apache Batik library. This provides excellent output on my local dev workstation but as soon as I deploy it on the EBS I start getting errors, all related to fonts.

错误堆栈跟踪是 -

The error stacktrace was -

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)

所以,我想安装字体的<一个href="http://stackoverflow.com/questions/4438839/java-on-debian-probable-fatal-error-no-fonts-found">one其他计算器的回答表明但是,这给了我一个新的错误堆栈跟踪。 -

So I tried installing fonts as one other stackoverflow answer suggests. But this gave me a new error stacktrace -

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) 

我不明白为什么会这样。然后,我设置 System.setProperty(java.awt.headless,真); 就在我打电话到蜡染的跨codeR。但是,这也产生了上述错误信息。我跑出来的选择。

I dont understand why is this happening. Then I set System.setProperty("java.awt.headless", "true"); just before I make a call to batik's transcoder. But this also generate the above error message. I am running out of options.

我缺少的东西?我可以做任何事情,更多的情况下加入到这一点?感谢您的帮助。

Am I missing something? Can I do anything to add more context to this? Thanks for the help.

推荐答案

我终于解决了这个问题,通过安装Sun JDK和放大器;用它来驱动我的Tomcat服务器。

I finally resolved this problem by installing Sun JDK & using it to power my tomcat server.

这篇关于有关于AWS ElasticBeanstalk实例的问题与Apache蜡染库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆