Applet Java Applet läuft im Browser nicht mehr (HTTPClient - NoClassDefFoundError)

phiLue

Mitglied
Guten Morgen zusammen,

ich werke nun schon ein paar Tage an einem einfachem Uploader und gestern war ich dann auch fast fertig bis mir folgendes passiert ist.

Ich hatte geschaut wie man Parameter an ein Applet übergeben kann und wie man über den HTTPClient Cookies setzen kann. Als ich dies alles eingebaut hatte, funktionierte mein Applet im Browser plötzlich nicht mehr aufgrund der unten stehenden Fehlermeldung. Wenn ich es in Eclipse als Applet starte funktioniert alles problemlos :/ Ich habe nun schon alles mögliche versucht, unter anderem die Änderung bezüglich der Parameter und Cookies zurück gesetzt und letzendlich auch den Quellcode in ein neues Projekt importiert, aber hier hatte ich dann auch den selben Fehler. Kann mir hier vielleicht jemand weiter helfen? Ich poste mal den Quellcode zum Projekt, dieser ist ja zum Glück nicht all zu groß.

Falls sonst ihr sonst noch Infos braucht dann fragt ruhig nach. Ich wäre wirklich dankbar wenn mir bei diesem Problem jemand helfen könnte :(

PS: Bibliotheken sind definitiv alle drin und auch richtig. Wie gesagt, in Eclipse als Applet gestartet funktioniert das ganze auch prima. Signiert ist das Applet übrigens auch. :/

Vielen Dank an alle die sich mit meinem Problem beschäftigen! :)

JUploader.java
Java:
package de.XXXXX.juploader;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;

import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.ClientContext;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntity;
import org.apache.http.entity.mime.content.ContentBody;
import org.apache.http.entity.mime.content.FileBody;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.cookie.BasicClientCookie;
import org.apache.http.params.CoreProtocolPNames;
import org.apache.http.protocol.BasicHttpContext;
import org.apache.http.protocol.HttpContext;
import org.apache.http.util.EntityUtils;


public class JUploader extends JApplet {
	
	private JFileChooser 	fc;
	private JButton 		btnUpload;
	
	private String uploadScript = "";
	private String sessionID	= "";

	/**
	 * Constructor
	 */
	public JUploader() {

	}
	
	@Override
	public void init() {
		super.init();
		initialize();
	}
	
	
	/**
	 * 
	 */
	private void initialize() {
		GridBagLayout gridBagLayout = new GridBagLayout();
		gridBagLayout.columnWidths = new int[]{88, 0};
		gridBagLayout.rowHeights = new int[]{0, 0};
		gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE};
		gridBagLayout.rowWeights = new double[]{0.0, Double.MIN_VALUE};
		getContentPane().setLayout(gridBagLayout);
		GridBagConstraints gbc_btnUpload = new GridBagConstraints();
		gbc_btnUpload.fill = GridBagConstraints.BOTH;
		gbc_btnUpload.gridx = 0;
		gbc_btnUpload.gridy = 0;
		getContentPane().add(getBtnUpload(), gbc_btnUpload);
		
		
		
	}
	
	/**
	 * 
	 * @return
	 */
	public JFileChooser getFileChooser() {
		if(this.fc == null) {
			fc = new JFileChooser();
		}
		return fc;
	}
	
	
	
	/**
	 * 
	 * @return JButton
	 */
	private JButton getBtnUpload() {
		if (btnUpload == null) {
			btnUpload = new JButton("Upload");
			btnUpload.addActionListener(new ActionListener() {
				@Override
				public void actionPerformed(ActionEvent arg0) {
					
					uploadScript 	= JUploader.this.getParameter("script");
					sessionID 		= JUploader.this.getParameter("sessionID");
					
					JOptionPane.showMessageDialog(null,sessionID,"Upload", JOptionPane.INFORMATION_MESSAGE);					
					fc = getFileChooser();
					int returnVal = fc.showOpenDialog( JUploader.this );  
					String fileName = "";
					if ( returnVal == JFileChooser.APPROVE_OPTION ) {    
			            File aFile 	= fc.getSelectedFile();    
			            fileName	= aFile.getAbsolutePath();
			        }  
					
					if(fileName != null && fileName instanceof String && fileName.length() > 0) {

						HttpClient httpclient = new DefaultHttpClient();
						httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
						
						CookieStore cookieStore = new BasicCookieStore();
						
						BasicClientCookie cookie = new BasicClientCookie("PHPSESSID", JUploader.this.sessionID);  
						cookieStore.addCookie(cookie);
						
						HttpContext httpContext = new BasicHttpContext();
						httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore);

						
						HttpPost httppost = new HttpPost("http://<IP+PORT>/juploader/upload.php");
						System.out.println("Filename: " + fileName);
						File file = new File(fileName);
						
						MultipartEntity mpEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
					    ContentBody cbFile = new FileBody(file, "multipart/form-data");
					    mpEntity.addPart("uploadfile", cbFile);

					    httppost.setEntity(mpEntity);
					    System.out.println("executing request " + httppost.getRequestLine());
					    HttpResponse response;
						try {
							response = httpclient.execute(httppost);
							HttpEntity resEntity = response.getEntity();
							System.out.println(response.getStatusLine());
							 
							if (resEntity != null) {
								JOptionPane.showMessageDialog(null,EntityUtils.toString(resEntity, "UTF-8"),"Upload", JOptionPane.INFORMATION_MESSAGE);
							}

							httpclient.getConnectionManager().shutdown();

						} catch (ClientProtocolException e) {
							e.printStackTrace();
						} catch (IOException e) {
							e.printStackTrace();
						}
					}
				}
			});
		}
		return btnUpload;
	}
}

index.php
HTML:
<APPLET  archive="java/JUploader.jar" code="de.XXXXX.juploader.JUploader.class" align="baseline" width="100" height="25" name="JUploader">
    <PARAM NAME="script" VALUE="http://<IP+PORT>/juploader/upload.php">
    <PARAM NAME="sessionID" VALUE="0">
    <PARAM NAME="java_code" VALUE="de.XXXXX.juploader.JUploader.class">
    <PARAM NAME="java_archive" VALUE="java/JUploader.jar">
    <PARAM NAME="java_type" VALUE="application/x-java-applet;jpi-version=1.4">
    <PARAM NAME="scriptable" VALUE="true">
    No Java 2 SDK, Standard Edition v 1.4 support for APPLET!!
</APPLET>

Fehler
Code:
Java-Plug-in 1.6.0_35
Verwendung der JRE-Version 1.6.0_35-b10-428-10M3811 Java HotSpot(TM) 64-Bit Server VM
Home-Verzeichnis des Benutzers = /Users/XXXXX
----------------------------------------------------
c:   Konsolenfenster schließen
f:   Objekte in Finalisierungswarteschlange finalisieren
g:   Speicherbereinigung
h:   Diese Hilfemeldung anzeigen
l:   ClassLoader-Liste ausgeben
m:   Speicherbelegung anzeigen
o:   Protokollierung auslösen
q:   Konsole ausblenden
r:   Richtlinien-Konfiguration neu laden
s:   System- und Bereitstellungseigenschaften ausgeben
t:   Threadliste ausgeben
v:   Thread-Stack ausgeben
x:   ClassLoader-Cache löschen
0-5: Trace-Stufe auf <n> setzen
----------------------------------------------------


java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/http/client/ClientProtocolException
	at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3136)
	at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1497)
	at java.lang.Thread.run(Thread.java:680)
Caused by: java.lang.NoClassDefFoundError: org/apache/http/client/ClientProtocolException
	at de.XXXXXX.juploader.JUploader.getBtnUpload(JUploader.java:104)
	at de.XXXXXX.juploader.JUploader.initialize(JUploader.java:78)
	at de.XXXXXX.juploader.JUploader.<init>(JUploader.java:61)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:355)
	at java.lang.Class.newInstance(Class.java:308)
	at sun.plugin2.applet.Plugin2Manager$13.run(Plugin2Manager.java:3060)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:199)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:702)
	at java.awt.EventQueue.access$400(EventQueue.java:82)
	at java.awt.EventQueue$2.run(EventQueue.java:663)
	at java.awt.EventQueue$2.run(EventQueue.java:661)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:672)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.ClassNotFoundException: org.apache.http.client.ClientProtocolException
	at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:249)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:179)
	at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:160)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	... 24 more
Ausnahme: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/http/client/ClientProtocolException

[EDIT]// Edit:

Okay... es ist wie fast immer... man sucht ewig nach dem Fehler, und kurz nachdem man in nem Forum gefragt hat findet man ihn selbst -.- Hat sich damit erledigt, Lösung war wie folgt :eek:

Einfach die Bibliotheken in das HTML-Applet Tag mit einbinden - Finde ich zwar seltsam, da der Fehler erst nach "HttpClient httpclient = new DefaultHttpClient();" auftritt, er aber diese Klasse schon garnicht kennen dürfte aber okay. Trotzdem danke für alle die sich die Mühe gegeben haben das durch zu lesen :)[/EDIT]
 
Zuletzt bearbeitet:

L-ectron-X

Gesperrter Benutzer
Beim Lesen deines Applet-Tags fiel mir auf, dass er nicht ganz korrekt ist.
In der FAQ findest du konkrete Beispiele für das richtige Einbinden von Applets.

Außerdem scheint im archive-Attribut auch noch die von dir eingesetzte Apache-Bibliothek zu fehlen. Die ist nicht Teil der Standard-Java-API und muss demzufolge entweder in dein eigenes Jar eingebaut werden (ein Weg mit vielen Nachteilen) oder neben deiner Jar gespeichert und im archive-Attribut aufgeführt werden (einfacher, sauberer, flexibler).
 

phiLue

Mitglied
Vielen Dank für die Antwort, habe es mitlerweile zum laufen bekommen :)

Eine Frage habe ich aber noch zu deiner Anmerkung bezüglich "alles in eine Jar-Datei". Wo liegen hier genau die Nachteile wenn ich das machen würde? War nämlich grade dabei das AddOn FatJar für Eclipse zu installieren als ich deinen Post hier gelesen hatte.
 

L-ectron-X

Gesperrter Benutzer
Insbesondere sind solche Jar-Konstrukte schlechter wartbar. Eine einzelne Jar-Datei lässt sich einfacher austauschen (bspw. bei einem Update/Versionswechsel), als eine aufgelöste Jar-Datei. Die ganze Sache wird übersichtlicher.
Es kann auch sein, dass in den Lizenztexten Restriktionen eingebaut wurden, die ein Entpacken nicht zulassen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Java Applet läuft nicht, wenn via IIS geladen Tools - Maven, Gradle, Ant & mehr 2
T Daten per POST-Methode aus Java-Applet nach php-Script senden Tools - Maven, Gradle, Ant & mehr 3
S Applet Applet mit C# öffnen: java.lang.SecurityException: Permission denied (WinXP) Tools - Maven, Gradle, Ant & mehr 8
E Java Applet bearbeiten Tools - Maven, Gradle, Ant & mehr 8
H Java Applet Problem beim einbinden in HTML Tools - Maven, Gradle, Ant & mehr 3
L PHP + Java Applet Kommunikation Tools - Maven, Gradle, Ant & mehr 9
G Java-Applet Probleme beim Browser Tools - Maven, Gradle, Ant & mehr 14
A Java-Applet Sandbox deaktiviren? Tools - Maven, Gradle, Ant & mehr 2
B Java-Applet geht nicht (auf dem Webserver) Tools - Maven, Gradle, Ant & mehr 9
S Java Applet per Klick starten? Tools - Maven, Gradle, Ant & mehr 6
M Java Applet - enforce use of older JRE Tools - Maven, Gradle, Ant & mehr 3
N Wie Java-Programm zu Applet machen?! Tools - Maven, Gradle, Ant & mehr 2
V applet Java 1.6 -> 1.5 Problem ... wie mit Ant zu lösen? Tools - Maven, Gradle, Ant & mehr 7
E Java Applet - Double Buffering Problem (Flackern) Tools - Maven, Gradle, Ant & mehr 6
S Java-Applet Steuerung IO Karte am Drucker-Port Tools - Maven, Gradle, Ant & mehr 4
T Applet soll Java Programm starten Tools - Maven, Gradle, Ant & mehr 2
P Java-Applet funktioniert unter WINXP nicht Tools - Maven, Gradle, Ant & mehr 2
N Java 1.6 Applet auf älteren Versionen ausführbar? Tools - Maven, Gradle, Ant & mehr 4
J Java Applet bei mouseover mit Tooltip Tools - Maven, Gradle, Ant & mehr 3
B Java-Applet startet nicht aus dem Browser Tools - Maven, Gradle, Ant & mehr 1
K Java-Applet Uhrzeit Tools - Maven, Gradle, Ant & mehr 2
A RSS-Feeds auslesen mit JAVA speichern und Applet übergeben Tools - Maven, Gradle, Ant & mehr 2
W Java-Applet Funzt ned! Tools - Maven, Gradle, Ant & mehr 3
B Java Applet im Systemtray Tools - Maven, Gradle, Ant & mehr 2
H Java 1.4 Applet, IE 6 und Java 6 funktioniert nicht zusammen Tools - Maven, Gradle, Ant & mehr 2
B Jukebox mit Java [Html Applet] Tools - Maven, Gradle, Ant & mehr 11
A Hilfe! Java Applet Lake von Anfy - wie in HP einbinden? Tools - Maven, Gradle, Ant & mehr 25
G rotierende Bilder im Java Applet Tools - Maven, Gradle, Ant & mehr 3
M Browser Fehler bei Applet: java.security.AccessControl. Tools - Maven, Gradle, Ant & mehr 6
G Java Applet Anfängerfrage Tools - Maven, Gradle, Ant & mehr 3
H Java Applet bei jedem booten starten Tools - Maven, Gradle, Ant & mehr 2
G wie java applet abändern? Tools - Maven, Gradle, Ant & mehr 2
G Externes .jar in Java Applet einbinden Tools - Maven, Gradle, Ant & mehr 2
A java applet zertifikat Tools - Maven, Gradle, Ant & mehr 4
G Java Applet neu laden Tools - Maven, Gradle, Ant & mehr 3
A java-applet thread Tools - Maven, Gradle, Ant & mehr 3
H Java Applet deutsche Tastatur Tools - Maven, Gradle, Ant & mehr 5
F Fenstergrößen in java applet festlegen Tools - Maven, Gradle, Ant & mehr 4
R Java Applet zum Auslesen der Größe des Arbeitsspeicher Tools - Maven, Gradle, Ant & mehr 2
G Applet mit der Java Mail-API Tools - Maven, Gradle, Ant & mehr 9
S JAVA APPLET While Schleife Frage! Tools - Maven, Gradle, Ant & mehr 3
S Netbeans Java Applet Tools - Maven, Gradle, Ant & mehr 3
S Java Applet funktioniert nicht! Tools - Maven, Gradle, Ant & mehr 2
D Größe eines jpeg's in einem Java-Applet ändern ? Tools - Maven, Gradle, Ant & mehr 7
M Java applet fehler Tools - Maven, Gradle, Ant & mehr 2
Y Einfaches Java-Applet Tools - Maven, Gradle, Ant & mehr 13
G Java applet nur einmal starten Tools - Maven, Gradle, Ant & mehr 2
J Memberbereich in einem Java Applet ? Tools - Maven, Gradle, Ant & mehr 5
G Aus Java Anwendung wird Applet Tools - Maven, Gradle, Ant & mehr 3
T Java Applet - Problem mit Tastatur Abfrage Tools - Maven, Gradle, Ant & mehr 5
G Daten zwischen PHP und Java-Applet austauschen? Tools - Maven, Gradle, Ant & mehr 3
N Selsame Ladeprobleme bei Java Applet Tools - Maven, Gradle, Ant & mehr 6
G NullPointer Exception in Java-Applet, aber nur online! Tools - Maven, Gradle, Ant & mehr 13
N Java Applet mit einer GUI erstellen Tools - Maven, Gradle, Ant & mehr 5
C Größe Java-Applet während der Laufzeit ändern Tools - Maven, Gradle, Ant & mehr 5
K Java Applet mit Lauftext, kleiner Fehler? Tools - Maven, Gradle, Ant & mehr 6
M Java-Applet Unterstützung in Browsern (für Java 1.1.8) Tools - Maven, Gradle, Ant & mehr 5
G Java Applet Kugelstapel Tools - Maven, Gradle, Ant & mehr 2
C java applet kann auf jar nicht zugreiffen Tools - Maven, Gradle, Ant & mehr 16
A Java applet in html anzgeigen - ClassNotFoundException Tools - Maven, Gradle, Ant & mehr 10
M Java Applet um Serielle Schnittstelle anzusprechen Tools - Maven, Gradle, Ant & mehr 3
R Java Applet offline nutzen! Tools - Maven, Gradle, Ant & mehr 5
R Freeware Java-Applet verändern? Tools - Maven, Gradle, Ant & mehr 41
P Colors in Java Applet ? Tools - Maven, Gradle, Ant & mehr 2
G Hilfe! Java Applet Tools - Maven, Gradle, Ant & mehr 6
T Java Applet Rechte zum Datei schreiben geben Tools - Maven, Gradle, Ant & mehr 3
G Analog Uhr - Java Applet Tools - Maven, Gradle, Ant & mehr 2
X Java Sonnensystem Applet Tools - Maven, Gradle, Ant & mehr 10
R access denied beim Java Applet Tools - Maven, Gradle, Ant & mehr 5
Ä Klassenpfade bei Java-Applet Tools - Maven, Gradle, Ant & mehr 3
G Java-Applet . zwinkernder Smily! Tools - Maven, Gradle, Ant & mehr 3
G Java Applet - Online Experiment - Teilnehmer gesucht Tools - Maven, Gradle, Ant & mehr 11
T Java - Applet startet nicht in Firefox und Mozilla Tools - Maven, Gradle, Ant & mehr 13
F Java applet Primzahlen Tools - Maven, Gradle, Ant & mehr 3
R Java Applet Bildbetrachter Tools - Maven, Gradle, Ant & mehr 2
D Java Applet mit MySql- Anbindung Tools - Maven, Gradle, Ant & mehr 2
M Von Java-Application zum Java-Applet Tools - Maven, Gradle, Ant & mehr 5
S Java-Applet "Navigations-Menü" Tools - Maven, Gradle, Ant & mehr 2
D Web-Anwendung mit JSP,Applet oder Java-Anwendung Tools - Maven, Gradle, Ant & mehr 4
S Java-Applet wird nicht erneuert Tools - Maven, Gradle, Ant & mehr 2
O Java-Applet, Kompilieren, MS IE Tools - Maven, Gradle, Ant & mehr 2
C Java-Applet auf Webserver übertragen und starten Tools - Maven, Gradle, Ant & mehr 4
M JAVA IRC APPLET Tools - Maven, Gradle, Ant & mehr 2
G Wegschaffen von "Java Applet Window" Meldung Tools - Maven, Gradle, Ant & mehr 5
D Java-Applet einbinden Tools - Maven, Gradle, Ant & mehr 5
R Datei in Java-Applet einlesen Tools - Maven, Gradle, Ant & mehr 10
H Maven NetBeans Java Application ohne Manifest-Datei Tools - Maven, Gradle, Ant & mehr 7
B Kleines Werkzeug zum Anzeigen von Mehrfachvererbung mit Interfaces in Java Tools - Maven, Gradle, Ant & mehr 5
D Java Programm veröffentlichen am Besten modular Tools - Maven, Gradle, Ant & mehr 28
H Maven Verbindung Java Projekt und Jenkins Build job Tools - Maven, Gradle, Ant & mehr 21
Q Java Eclipse Fehlermeldung bei Installation Tools - Maven, Gradle, Ant & mehr 3
D Maven Abhängigkeiten überprüfen auf Kompatibilität mit einer anderen Java-Version Tools - Maven, Gradle, Ant & mehr 11
R Webstart Java 11 ohne Web Start Tools - Maven, Gradle, Ant & mehr 5
M Java mit Modulen kompilieren klappt nicht Tools - Maven, Gradle, Ant & mehr 9
R Java mitnehmen Tools - Maven, Gradle, Ant & mehr 14
W Java on Cloud - which Provider Tools - Maven, Gradle, Ant & mehr 0
S Python-Code mit Java ausführen Tools - Maven, Gradle, Ant & mehr 13
B Java auf Smartcards?! Tools - Maven, Gradle, Ant & mehr 9
J Java App im Mac Store veröffentlichen Tools - Maven, Gradle, Ant & mehr 0
M Maven (Java EE, WAR) Eigener Buildschritt - Manipulation von Dateien Tools - Maven, Gradle, Ant & mehr 4

Ähnliche Java Themen

Neue Themen


Oben