Jakarta FileUpload Servlet funktioniert nicht

Status
Nicht offen für weitere Antworten.
S

Starter

Gast
Hallo,

ich versuche verzweifelt ein Servlet für den Datei-Upload mittels Jakarta FileUpload zum Laufen zu bringen.
Als Server ist Tomcat 5.5.15 (Port 8080) im Einsatz mit commons-io und fileupload jeweils in der aktuellen Version 1.1.
Die Jakarta jars liegen unter WEB-INF/lib, Programmcode entspricht dem Beispiel auf http://jakarta.apache.org/commons/fileupload/using.html.

Erhalte immer die gleiche Fehlermeldung: "The request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null".

An der HTML-Seite liegt es nicht, weil der Upload z.B. mit einem in VB geschriebenen CGI-Skript funktioniert. Hier der Code:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html><head></head>
<body>
<form action="http://127.0.0.1:8080/Upload" ENCTYPE="multipart/form-data" method="POST"">
  

W&hlen Sie eine Datei von Ihrem Rechner aus:

    <input name="Datei" type="file">
  </p>
  

 
    <input name="ok" type="submit">
    </p>
</form>
</body>
</html>

Hat jemand ein komplettes, funktionierendes Beispiel? Oder muss die Tomcat-Konfiguration angepasst werden?

Vorab bereits vielen Dank für eure Hilfe!


P.S.: Bin Java--Beginner und würde mich über idiotensichere Anleitung freuen! :eek:)
 

Bleiglanz

Gesperrter Benutzer
sicher dass kein Struts o.ä im Spiel ist?

bzw: du darfst den Request vor dem Upload nicht anfassen, also kein getParameter oder sonstwas aufrufen??
 
S

Starter

Gast
Danke für Deine Hilfe Bleiglanz!

Blöde Frage eines Anfängers: wie erkenne ich ob Struts o.ä. im Spiel ist?

Reuqest wird vorher nicht angefasst (glaube und hoffe ich zumindest). Hier der Code:

Code:
import javax.servlet.http.*;


import java.io.*;
import java.util.*;

import org.apache.commons.fileupload.*;
import org.apache.commons.fileupload.servlet.*;
import org.apache.commons.fileupload.disk.*;

public class Upload extends HttpServlet implements Serializable
{
	 public void doGet(HttpServletRequest req, HttpServletResponse res) {
	    	doPost(req,res);
	    }
  		
	 public void doPost(HttpServletRequest req,HttpServletResponse res)
	 {
		 DiskFileItemFactory factory = new DiskFileItemFactory();
	        ServletFileUpload fu = new ServletFileUpload(factory);
	        try{
	        List items = fu.parseRequest(req);
	        Iterator iter = items.iterator();
	        while (iter.hasNext()) {
	            FileItem item = (FileItem) iter.next();

	            if (item.isFormField()) {
	            		System.out.println(item.getFieldName());
	                
	            } else {
	            	System.out.println(item.getName());
	            }
	        }
	 }
	 catch (Exception e) {
		 System.out.println(e.getLocalizedMessage());
	 }
	 }

}
 
S

Starter

Gast
Nächste dumme Frage: welches logfile und wo finde ich das?

Ausgabe habe ich an Eclipse umgeleitet. Dort erscheint:
"the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null"
 

Bleiglanz

Gesperrter Benutzer
im Tomcat im unterverzeichnis logs

oder mach e.printStackTrace

wär doch schön, wenn wir wüssten wo er sich verschluckt...
 
G

Gast

Gast
unter tomcat\logs liegt keine Datei. Habe "System.out.println(e.getStackTrace());" eingefügt - Ergebnis:
[Ljava.lang.StackTraceElement;@1ec8909

beim nächsten Aufruf: [Ljava.lang.StackTraceElement;@16e1fb1

Hilft das weiter?
 
S

Starter

Gast
Oh, sehe gerade, dass ich e.printStackTrace und nicht getStackTrace
einfügen soll ...

e.printStackTrace(); liefert dies hier:
org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is null
at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:294)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:116)
at Upload.doPost(Upload.java:22)
at Upload.doGet(Upload.java:14)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
 

Bleiglanz

Gesperrter Benutzer
at Upload.doPost(Upload.java:22)
at Upload.doGet(Upload.java:14)

wie gibts denn das???

es muss ein POST sein, ein GET hat die Datei bestimmt nicht mit dabei :)
 
S

Starter

Gast
Das mit dem GET klingt logisch! ;-)

Hatte Public void deGet und doPost definiert, wobei doGet nur doPost aufruft (s. Programmcode oben). Jetzt habe ich doGet rausgeschmissen und bekomme folgenden Fehler im Browser:

HTTP Status 405 - HTTP method GET is not supported by this URL

type Status report

message HTTP method GET is not supported by this URL

description The specified HTTP method is not allowed for the requested resource (HTTP method GET is not supported by this URL).
Apache Tomcat/5.5.15


Verstehe ich aber nicht, warum "Get"? Das Formular
<form action="http://localhost:8080/Upload" enctype="multipart/form-data" method="POST">
sollte doch POST verwenden.

Irgendwie scheint jede Anfrage als GET anzukommen. Habe es mit Firefox und IE versucht.
 

Bleiglanz

Gesperrter Benutzer
hm

ist das Servlet auf Upload gemappt?

gibts irgendwelche ServletFilter?

oben steht method="POST"">

macht das überflüssige zweite " am Schluss probleme? wär unglaublich??
 

Murray

Top Contributor
In Deinem Beispiel steht
Code:
method="POST""
,also ein Anführungszeichen zuviel. Kann das das Problem sein?

/EDIT: zu spät :oops:
 
S

Starter

Gast
Form habe ich korrigiert:
Code:
<form name="uplform" method="post" action="http://localhost:8080/Upload" enctype="multipart/form-data">
Am Ergebnis hat das leider nichts geändert.

Servlet ist in server.xml (Tomcat/conf) gemappt:
Code:
<Context path="/Upload" reloadable="true" docBase="D:\transfer\Eclipse\Upload" workDir="D:\transfer\Eclipse\Upload\work" >
	<Logger className="org.apache.catalina.logger.SystemOutLogger" verbosity="4" timestamp="true"/>
</Context>

Hier noch die web.xml auf D:\transfer\Eclipse\:
Code:
<!DOCTYPE web-app PUBLIC
  '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
  'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app>
  <display-name>Upload</display-name>
  <servlet>
    <servlet-name>Upload</servlet-name>
    <servlet-class>Upload</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Upload</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

Wo bitte könnten sich denn Filter verstecken?
 
S

Starter

Gast
klar, gerne:

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Felder f&r Datei-Upload definieren</title>
</head>
<body>

<form name="uplform" method="post" action="http://localhost:8080/Upload" enctype="multipart/form-data">
  

W&hlen Sie eine Datei von Ihrem Rechner aus:

    <input name="Datei" type="file" size="50">
    <input name="go" type="submit">
  </p>
</form>

</body>
</html>
 
S

Starter

Gast
:toll: SUPER! Mit /Upload/Upload bekomme ich ein POST!
Jetzt kann ich weiter basteln.

Vielen vielen Dank, Du hast mir wirklich sehr geholfen!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
I No Jakarta Enterprise Beans found with interface ignorieren? Java Basics - Anfänger-Themen 2
J Fehlermeldung unverständlich für Jakarta Java Basics - Anfänger-Themen 17
S Jakarta HttpClient Verwenden Java Basics - Anfänger-Themen 2
E Apache jakarta fehler Java Basics - Anfänger-Themen 5
G Java Regex / Pattern etc. <-> Jakarta RegExp Java Basics - Anfänger-Themen 6
G StringUtils von jakarta.apache.org/commons/lang/api einbauen Java Basics - Anfänger-Themen 3
L JProgressBar für FileUpload Java Basics - Anfänger-Themen 3
A fileupload mit servlet Java Basics - Anfänger-Themen 6
G [Hilfe] Fileupload: Client-Server Java Basics - Anfänger-Themen 9
H What is the Life Cycle of an Object Created Within/Outside of a Servlet? Will that item be destroyed after the session ends? Java Basics - Anfänger-Themen 1
J MySQL Datumsabfrage über ResultSet in Java-Servlet Java Basics - Anfänger-Themen 4
J javax.servlet.ServletException: Name is null Java Basics - Anfänger-Themen 7
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
E Pdf-Document lässt sich im Servlet nicht öffnen Java Basics - Anfänger-Themen 5
E Erste Schritte Java Webeintwicklung (JSP/Servlet), wie am Besten einsteigen? Java Basics - Anfänger-Themen 0
S Java Servlet - Suche Java Basics - Anfänger-Themen 1
R Upload Servlet: Ausgabe nicht korrekt Java Basics - Anfänger-Themen 2
H Variablen Servlet. Int i global Java Basics - Anfänger-Themen 4
C Inputreader Servlet Nullpointerexception Java Basics - Anfänger-Themen 6
B Servlet und Eclipse Java Basics - Anfänger-Themen 2
B Servlet ausfuehren Java Basics - Anfänger-Themen 4
O Servlet Klassen ? Java Basics - Anfänger-Themen 7
B Datenzugrifft: Servlet -> Objekte Java Basics - Anfänger-Themen 4
T Servlet - oder doch nicht? Java Basics - Anfänger-Themen 4
T Servlet HTML-Formular Java Basics - Anfänger-Themen 9
F Aus Servlet in JSP schreiben Java Basics - Anfänger-Themen 2
T Servlet wird nicht erkannt Java Basics - Anfänger-Themen 10
X Kurve im Servlet zeichnen lassen Java Basics - Anfänger-Themen 4
P Problem mit Servlet Java Basics - Anfänger-Themen 9
D Periodische Aufgaben erledigen in Webanwendung (Servlet/JSP) Java Basics - Anfänger-Themen 7
I Probleme mit Tomcat / Servlet auf Linux (Debian) Java Basics - Anfänger-Themen 7
Tandibur [erledigt] jsp überträgt nicht alle Parameter an Servlet Java Basics - Anfänger-Themen 2
D Servlet kann nicht auf Instanz zugreifen Java Basics - Anfänger-Themen 10
D Servlet mit Utilities Java Basics - Anfänger-Themen 14
J Servlet Interface javax.servlet.Servlet Java Basics - Anfänger-Themen 2
G Parameter in Servlet weiterleiten Java Basics - Anfänger-Themen 5
A Finde javax.servlet.* nicht Java Basics - Anfänger-Themen 6
G JSP, Applet oder Servlet? Java Basics - Anfänger-Themen 8
0x7F800000 Servlet ruft Servlet auf: Wie ServletRequest erstellen? Java Basics - Anfänger-Themen 6
0x7F800000 Servlet: wo bekommt man die eigene adresse? Java Basics - Anfänger-Themen 6
O Weiterleitung in einem Java-Servlet Java Basics - Anfänger-Themen 5
O Jar-Archiv im Servlet verwenden Java Basics - Anfänger-Themen 3
G Servlet Package wo herunterladen? Java Basics - Anfänger-Themen 2
G doGet und doPost im Servlet nicht überschrieben Java Basics - Anfänger-Themen 9
P Servlet unterschiedliche Server Java Basics - Anfänger-Themen 2
W Servlet - out of memory Java Basics - Anfänger-Themen 7
W servlet imports nicht unterstützt Java Basics - Anfänger-Themen 3
F Applet --> Servlet --> Applet Java Basics - Anfänger-Themen 2
K Problem mit javax/servlet/http/HttpServletRequest.java Java Basics - Anfänger-Themen 2
J Servlet Error Java Basics - Anfänger-Themen 11
D Aus Anwendung Zugriff auf ein Servlet Java Basics - Anfänger-Themen 5
P konsolen ausgabe bei servlet Java Basics - Anfänger-Themen 2
S Methoden aus einem Servlet in einer JSP verwenden Java Basics - Anfänger-Themen 5
T Wo Daten ablegen für mehrere Servlet-Instanzen? Java Basics - Anfänger-Themen 2
G import javax.servlet cannot be resolved Java Basics - Anfänger-Themen 1
Z Wo wird ein Servlet gespeichert ? Java Basics - Anfänger-Themen 2
I eine Klasse aus der Jar-Datei aus dem Servlet starten Java Basics - Anfänger-Themen 4
N Probleme mit import von javax.servlet.* Java Basics - Anfänger-Themen 3
T komplexe Strukturen in Servlet-Context speichern möglich? Java Basics - Anfänger-Themen 5
T servlet synchronisationsproblem Java Basics - Anfänger-Themen 4
P Servlet wird nicht gefunden Java Basics - Anfänger-Themen 4
P asynchrone Kommunikation Applet Servlet mit RMI möglich Java Basics - Anfänger-Themen 4
G Übergabe Variablen von Servlet zu JSP? Java Basics - Anfänger-Themen 4
G Formularübergabe in Servlet endet mit null. Java Basics - Anfänger-Themen 2
G Servlet gibt über request nur null zurück Java Basics - Anfänger-Themen 3
G problem mit servlet import Java Basics - Anfänger-Themen 4
W servlet nicht gefunden Java Basics - Anfänger-Themen 8
R Servlet - JSP Java Basics - Anfänger-Themen 2
G Servlet geht nicht Java Basics - Anfänger-Themen 5
G hilfe jsp/servlet,jdbc api running on tomcat server+webProxy Java Basics - Anfänger-Themen 8
G Servlet aus programm abfragen Java Basics - Anfänger-Themen 9
H JSP Kein Durchblick. Servlet <-> JSP Java Basics - Anfänger-Themen 7
I Bean<>Servlet ? Java Basics - Anfänger-Themen 6
D Datentransfer via Servlet Java Basics - Anfänger-Themen 2
M Applet sendet daten an servlet und servlet wieder an applet Java Basics - Anfänger-Themen 5
M Servlet position bestimmen Java Basics - Anfänger-Themen 3
J Servlet - Datei auf Server speichern und Ausgabe Java Basics - Anfänger-Themen 5
G Servlet wird nicht importiert? Java Basics - Anfänger-Themen 3
C Servlet & tomcat 5.0.28 Java Basics - Anfänger-Themen 7
S Servlet-Anfänger Java Basics - Anfänger-Themen 4
G Mein Servlet ist "not available" Java Basics - Anfänger-Themen 12
M Kann neues Servlet nicht hinzufügen Java Basics - Anfänger-Themen 5
D Beispiel-Servlet erstellen Java Basics - Anfänger-Themen 4
H Unterbrochener Link im Fomular bei Servlet-Aufruf Java Basics - Anfänger-Themen 4
E Webshop-Servlet: Problem beim Speichern der Bestellmenge Java Basics - Anfänger-Themen 3
M hilfe :} möchte servlet daten erfasssen-> hashmap speiche Java Basics - Anfänger-Themen 3
Z Servlet/Tomcat Problem Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben