Ich bin eine Java-Applet Herstellung von Client-Seite PDF zu unterzeichnen und begegne mir die folgenden Fehler, wenn das Applet in Internet Explorer starten:Java Applet: java.lang.NoClassDefFoundError
Das ist mein Ordner Architektur:
Test/
├── Applet.html/
├── PDFSigningApplet.class/
├── jars/
│ └── bcpkix-jdk15on-1.49.jar
│ └── bcprov-jdk15on-1.49.jar
│ └── itextpdf-5.5.11.jar
│ └── itext-pdfa-5.5.11.jar
│ └── ...
Hier ist mein HTML Code:
<html>
<head>
<title>Test Smart Card Signer Applet</title>
<script src="http://java.com/js/deployJava.js"></script>
</head>
<body>
<script>
var attributes = {
codebase: '.',
code: 'PDFSigningApplet.class',
archive: 'jars/bcpkix-jdk15on-1.49.jar, ' +
'jars/bcprov-jdk15on-1.49.jar, ' +
'jars/signing-pdf-applet-1.0-SNAPSHOT.jar, ' +
'jars/commons-imaging-1.0-20170517.221134-118.jar, ' +
'jars/commons-imaging-1.0-SNAPSHOT.jar, ' +
'jars/itextpdf-5.5.11.jar, ' +
'jars/itext-pdfa-5.5.11.jar, ' +
'jars/itext-xtra-5.5.11.jar, ' +
'jars/xmlworker-5.5.11.jar',
width: '800',
height: '600'
};
var parameters = {java_arguments: ''}; // customize per your needs Xmx256m
var version = '1.8'; // JDK version
deployJava.runApplet(attributes, parameters, version);
console.log("Ran script");
</script>
...
Und hier ist die Verwendung von BouncyCastleProvider in meinem Applet.java:
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfSignatureAppearance;
import com.itextpdf.text.pdf.PdfStamper;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
...
BouncyCastleProvider provider = new BouncyCastleProvider();
Das Merkwürdige dabei ist, dass alle anderen externen Bibliotheken scheinen gut importiert wurden, aber ich bekomme die Ausnahme mit BouncyCastleProvider.
Was ich habe bereits versucht, auf der Grundlage der ähnlichen Fragen online zu finden:
alle meine Gläser mit den folgenden Befehle Gezeichnet:
jar ufm myjar.jar addToManifest
jarsigner my.jar myKey
Mit diesem in meinem addToManifest:
Permissions: all-permissions
Codebase: file:///C:/Users/A667080/Desktop/Test/
Application-Name: PDFSigningApplet
- Added eine Sicherheitsausnahme für diese Seite in meinem Java-Setup
- I 7-zip mit Nachweis erbracht, dass mein BouncyCastle jar die .class in meinem Applet enthält
Habe ich etwas vermisst?