Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
benutze iText, um in meinem Applet PDFs zu erzeugen. Grundsätzlich klappt das alles sehr gut.
Probleme macht "nur" der Zugriff auf Dateien.
iText hat eine eigene Image-Klasse, bei der Bilder wie folgt geladen werden:
Code:
Image logo = Image.getInstance( "images/logo.jpg" );
Hier tritt auch schon der Fehler auf, es erscheint:
Code:
Exception in thread "Thread-10" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at java.io.Win32FileSystem.getUserPath(Unknown Source)
at java.io.Win32FileSystem.resolve(Unknown Source)
at java.io.File.getAbsolutePath(Unknown Source)
at com.lowagie.text.Image.toURL(Image.java:1480)
at com.lowagie.text.Image.getInstance(Image.java:773)
at IText.createContentShort(IText.java:119)
at Actions.run(Actions.java:523)
Ein ägnliches Problem habe ich mit dem Laden von Schriftarten, was bei iText so klappen soll:
Das Applet ist signiert, sodass ich doch EIGENLICH alle betreffenden Rechte dafür haben sollte, oder?
Was gibt es jetzt für Möglichkeiten zur Fehlerbehebung?
in der Console zu lesen bekommst, kannst du davon ausgehen, dass das Applet nicht signiert ist. In den FAQs liegt ein kleines Batch-Tool zum Signieren. Probiere das mal aus.
Ach ja, nicht vergessen, das Applet via archive-Attribut im Applet-Tag anzugeben, denn nur jar-Dateien können signiert werden und erhalten erweiterte Rechte.
oke.. ich hab es aber mit dem tool aus der faq signiert!
wenn ich es im browser starte, kommt auch die entsprechende meldung...
trotzdem gibt es anscheiend rechteprobleme.
leider immernoch dieselbe fehlermeldung wie oben :autsch:
Code:
Exception in thread "Thread-10" java.security.AccessControlException: access denied (java.util.PropertyPermission user.dir read)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at java.io.Win32FileSystem.getUserPath(Unknown Source)
at java.io.Win32FileSystem.resolve(Unknown Source)
at java.io.File.getAbsolutePath(Unknown Source)
at com.lowagie.text.Image.toURL(Image.java:1480)
at com.lowagie.text.Image.getInstance(Image.java:773)
at IText.createContentShort(IText.java:119)
at Actions.run(Actions.java:523)
wenn ich an der policy datei schraube, muss ich das doch an JEDEM client machen, der das applet nutzen möchte, oder? das wäre ziemlich schlecht.
OK, das sieht so weit in Ordnung aus.
Hast du beide jar-Dateien signiert? In welchem Archiv liegt die Main.class (Applet)?
Dann zeig mal bitte den Quelltext von Main.java
Allerdings hab ich jetzt schon das nächste Problem. Es läuft alles ohne Fehler durch ... aaaaAAAber:
Das PDF, was er mir erstellt, hat eine Größe von 0 Byte und es wird auch nicht nach dem Erstellvorgang geöffnet.
Vieleicht ist es diemal etwas ganz einfaches, deswegen poste ich den Code mal:
Code:
// we create a writer that listens to the document
// and directs a PDF-stream to a file
PdfWriter.getInstance( document, new FileOutputStream( "test.pdf" ) );
document.open();
// paragrafen, tabellen etc. hinzufügen [...]
document.close();
Desktop.getDesktop().open( new File( "test.pdf" ) );
Sorry, dass immer etwas neues kommt aber es ist das erste mal, dass ich ein Applet signiere und daher steh ich momentan ziemlich hilflos da [/code]
An der Stelle muss ich passen, ich kenne keine der verwendeten Bibliotheken.
Am besten wird es sein, du schließt den Thread mit dem Häkchen (Thema erledigt) und öffnest einen neuen Thread mit der passenden Frage und einem Verweis auf diesen Thread.