2017-09-29 5 views
1

でSpringのブート時にJasperがフォント拡張子を報告していません。春のブートで開発され、パッケージの種類は戦争です。コマンドライン "java -jar b2b.war"と専用のTomcatの両方から実行しています。 Jasperの報告では、「フォントArialはJVMで利用できません」というエラーが発生しました。まあ、既知の問題です、私たちはJasper Repost Studioによってフォント拡張ジャーを作り、それを戦争に詰め込んだのです。それ以降は、埋め込み型Tomcatと専用型Tomcatの両方で、すべてがWindows上で動作します。 Linuxおよび専用Tomcatでは、「Font Arial is not available」エラーが発生し続けます。 msttcorefontsパッケージをインストールした後、エラーは消えましたが、PDFはキリル文字なしで生成され、英語のみが生成されます。それは、JVMがフォントの拡張を無視し、システムフォントを取ると思っていました。しかし、私は埋め込まれたTomcat(java -jar b2b.war)を使ってLinux上で同じアプリを実行しようとしました - うまくいきました!しかし、war/WEB-INF/libから手動でフォント拡張jarを削除すると、キリル文字がレポートから消えてしまいます。したがって、拡張機能は少なくとも「java -jar」という方法で問題になります。私たちのアプリでは、専用のTomcat

最後に、Linuxでは、フォント拡張子が "java -jar"(Tomcatの埋め込み)を起動していて、専用のTomcatで同じ戦争と同じJVMで作業していません。 アイデア

答えて

0

解決策は、しばしば起こるように、Unixの許可を受けていました。 もののTomcatのログは完全に誤解を招くような例外が含まれています

net.sf.jasperreports.engine.fonts.InvalidFontException: Error loading font "fonts/arial.ttf". 
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.loadFont(SimpleFontFace.java:206) ~[jasperreports-6.4.0.jar:6.4.0] 
    at net.sf.jasperreports.engine.fonts.SimpleFontFace.setTtf(SimpleFontFace.java:167) ~[jasperreports-6.4.0.jar:6.4.0] 
    at net.sf.jasperreports.engine.fonts.SimpleFontExtensionHelper.parseFontFace(SimpleFontExtensionHelper.java:376) [jasperreports-6.4.0.jar:6.4.0]... 

を、実際の理由は、JavaがTomcatの/ tempディレクトリに書き込むことができないということでした。誰もが完全なアクセス許可を持ってtempを再作成すると、レポートは正常に動作し始めました。

関連する問題