erreur java.lang.IllegalArgumentException: schéma d'URI n'est pas “fichier”?
Je reçois l'erreur suivante lors de la tentative d'accès au fichier de police :
011.08.31 12:12:42.704 ERROR [PDFOutputHandler] - Unable to resolve Unicode font
java.lang.IllegalArgumentException: URI scheme is not "file"
at java.io.File.<init>(File.java:366)
at com.xx.reports.output.handler.PDFOutputHandler.addUnicodeFont(PDFOutputHandler.java:393)
at com.xx.reports.output.handler.PDFOutputHandler.renderOutput(PDFOutputHandler.java:104)
at com.xx.reports.output.handler.PDFOutputHandler.renderOutput(PDFOutputHandler.java:134)
at com.xx.reports.output.appender.PdfAppender.renderOutput(PdfAppender.java:103)
at com.xx.reports.servlet.BasePdfOutputServlet.setResponsePdf(BasePdfOutputServlet.java:53)
at com.xx.reports.servlet.JSPToPDFServlet.execute(JSPToPDFServlet.java:115)
at com.xx.reports.servlet.JSPToPDFServlet.doGet(JSPToPDFServlet.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
Veuillez trouver ci-dessous mon code:
try
{
if (unicodeFontPath == null)
{
URI fontClassURI = new URI(this.getClass().getResource("/fonts/ARIALUNI.TTF").toString());
unicodeFontPath = new File(fontClassURI).getAbsolutePath();
}
renderer.getFontResolver().addFont(unicodeFontPath, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
} catch (Exception e)
{
logger.error("Unable to resolve Unicode font", e);
}
Veuillez indiquer ce que pourrait être la question. Je suis à court d'idées.
Merci
Nick
essayez d'ajouter
file:///
le début de /fonts/ARIALUNO.TTF
OriginalL'auteur nick | 2011-09-03
Vous devez vous connecter pour publier un commentaire.
Vous obtenez ce que l'exception, parce que vous êtes à l'aide de
new File(myURI)
constructeur, tandis quemyURI
a differet schéma quefile:
.Par exemple, ce sera travail (note fichier://...):
bien que cette pas de travail (note http://...):
Si vous souhaitez utiliser
getResource()
méthode, alors vous avez à fonctionner sur des URL. Vous ne pouvez pas assumer, il aura toujours "fichier:" schéma.Si vous avez besoin de créer une Police à partir de ressources *.ttf fichier, vous pouvez le faire:
OriginalL'auteur Michał Šrajer