Ich versuche eine PDF-Datei zu laden, die ein Bild enthält (um genauer zu sein, generiert mein Java-Code die PDF-Datei durch Drucken von einigen Text und ein Bild dazu (das Bild ist ein QR-Code Bild, das von einem anderen Teil des Codes generiert wird) in meiner Webanwendung. Wenn ich mein Programm in Eclipse als "Run on Server" starte, gibt es keinen Fehler und ich kann die PDF-Datei auf meinem lokalen Host mit chrome sehen. Wenn ich jedoch eine WAR-Datei aus meinem Projekt erstelle, um mein Projekt lokal bereitzustellen und zu versuchen, die PDF-Seite in Chrome zu durchsuchen, erhalte ich den Fehler "java.lang.IllegalArgumentException at com.itextpdf.text.pdf.PdfGraphics2D.drawImage". Ich habe den Teil auskommentiert, der das Bild in der PDF-Datei in meinem Java-Code druckt und die WAR-Datei neu generiert. Jetzt kann ich die PDF-Datei aber natürlich ohne das Bild sehen. Ich sollte sagen, dass ich keine Probleme mit anderen Seiten meiner Anwendung habe. Würde mir bitte jemand helfen, wie ich dieses Problem lösen kann. Jede Information wird sehr geschätzt.java.lang.IllegalArgumentException at com.itextpdf.text.pdf.PdfGraphics2D.drawImage
Update 1:
Hier ist der vollständige Stack-Trace
SEVERE: Exception or error caught in server resource
org.restlet.resource.ResourceException: Internal Server Error (500) - The server
encountered an unexpected condition which prevented it from fulfilling the requ
est
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:539)
at org.restlet.resource.ServerResource.get(ServerResource.java:742)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:617)
at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource
.java:678)
at org.restlet.resource.ServerResource.doConditionalHandle(ServerResourc
e.java:356)
at org.restlet.resource.ServerResource.handle(ServerResource.java:1043)
at org.restlet.resource.Finder.handle(Finder.java:236)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:639)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.jav
a:140)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHe
lper.java:77)
at org.restlet.Application.handle(Application.java:385)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:639)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:639)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
at org.restlet.Component.handle(Component.java:408)
at org.restlet.Server.handle(Server.java:507)
at org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63
)
at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.j
ava:143)
at org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:1117
)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52
)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:436)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
11Processor.java:1078)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
AbstractProtocol.java:625)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpo
int.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin
t.java:2506)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskTh
read.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException
at com.itextpdf.text.pdf.PdfGraphics2D.drawImage(PdfGraphics2D.java:1606
)
at com.itextpdf.text.pdf.PdfGraphics2D.drawImage(PdfGraphics2D.java:1340
)
at com.itextpdf.text.pdf.PdfGraphics2D.drawImage(PdfGraphics2D.java:1327
)
at com.itextpdf.text.pdf.PdfGraphics2D.drawImage(PdfGraphics2D.java:1310
)
at com.itextpdf.text.Image.getInstance(Image.java:838)
at org.safetycode.msc3.resources.PocketCardServerResource.addCodeImage(P
ocketCardServerResource.java:159)
at org.safetycode.msc3.resources.PocketCardServerResource.printCodeImage
(PocketCardServerResource.java:155)
at org.safetycode.msc3.resources.PocketCardServerResource.getPdf(PocketC
ardServerResource.java:146)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:523)
... 60 more
Die vollständige Stack-Trace würde helfen. – Compass
@Compass Vielen Dank für Ihren Kommentar. Ich habe gerade den Beitrag mit dem vollständigen Stack-Trace aktualisiert. – Rane
Die Quelle gefunden: http://grepcode.com/file/repo1.maven.org/maven2/com.itextpdf/itextpdf/5.1.3/com/itextpdf/text/pdf/ PdfGraphics2D.java # PdfGraphics2D.drawImage% 28java.awt.Image% 2Cint% 2Cint% 2Cjava.awt.Color% 2Cjava.awt.image.ImageObserver% 29 Wenn Sie zurückgehen, sieht es so aus, als könnten Sie ein bisschen mehr Informationen herausholen. Die Ausnahme liegt in Zeile 1340. Ich bin in diesen Tagen nicht zu 100% mit itext vertraut, aber überprüfe, ob die Erstellung deiner Image-Instanz 100% gültige Argumente hat. Ansonsten scheint es keine überprüften Ausnahmen zu geben. – Compass