(NetBeans JSP) Findet @page import="org.apache.commons.fileupload.* nicht

ynb

Mitglied
Hallo allerseits!

Vorab: Bin neu hier im Forum und bei Java, deshalb besser einen Hinweis mehr, wenn ich was falsch mache.

Habe JDK1.7.0_51, Tomcat7.0.52, NetBeans7.4 installiert, weiß aber nicht, ob richtig und vollständig.
Tomcat-Beispiele laufen, HelloWorld.jsp läuft auch.

Wollte jetzt ein FIle-Upload nach JSP - File Uploading probieren, aber da gibt es Fehler bei den Importen:

Java:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%@ page import="java.io.*,java.util.*, javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>
<%@ page import="org.apache.commons.io.output.*" %>

Die jar-Dateien
commons-fileupload-1.3.1.jar
commons-io-2.4-javadoc.jar
commons-io-2.4-sources.jar
commons-io-2.4-test-sources.jar
commons-io-2.4-tests.jar
commons-io-2.4.jar
habe ich runtergeladen, ausgepackt und in beide lib-Verzeichnisse (C:\Program Files\Java\jdk1.7.0_51\lib und C:\Program Files\Java\jre7\lib) kopiert, weil ich dazu keine eindeutigen Angaben gefunden habe.

Ja, und nun das mit dem CLASSPATH. Zitat: " ... make sure you have the latest version of commons-xxxxxx.x.x.jar file in your classpath."

Ich habe unter Windows7 eine Benutzer-Umgebungsvariable CLASSPATH angelegt mit dem Wert
%CATALINA%\lib\jsp-api.jar;
C:\Program Files\Java\jdk1.7.0_51\lib;
C:\Program Files\Java\jdk1.7.0_51\lib\commons-io-2.4.jar;
C:\Program Files\Java\jdk1.7.0_51\lib\commons-fileupload-1.3.1.jar;
%CLASSPATH%

Wenn ich die mit cmd.exe -> echo %CLASSPATH% abfrage, ist sie auch so gesetzt.

Muss ich da noch was einfügen? Z.B.
C:\Program Files\Java\jre7\lib;
C:\Program Files\Java\jre7\lib\commons-io-2.4.jar;
C:\Program Files\Java\jre7\lib\commons-fileupload-1.3.1.jar;

Nun erstelle ich in Netbeans eine neue JSP, aber egal ob ich diese "org.apache.commons..." reinkopiere oder selber schreibe, es hilft alles nichts, spätestens nach <%@ page import="org.apache. geht es nicht weiter (nur andere Pakete im Angebot: catalina, coyote, el, ...)
bzw. es kommt ein Fehler: <%@ page import="org.apache.commons.fileupload.*" %>

Was muss ich (anders) machen?

Yannick
 
Zuletzt bearbeitet:
Die benötigten Pakete gehören direkt in deine WebApplikation (und/oder in entsprechendes lib-Verzeichnis deines ApplicationServers).

Klicke mal links in der Projektübersicht mit Rechtsklick auf "Libraries" oder so ähnlich, dann "import JAR" und füge die benötigten jar's deinem Projekt hinzu. NetBeans kümmert sich dann beim build-Vorgang selbst darum, dass diese dort landen, wo sie hingehören.
 
Nachtrag:

Die Fehlermeldungen von Netbeans lauten:

package org.apache.commons.fileupload does not exist
package org.apache.commons.io.output does not exist -- oben beim @page import

und dann weiter unten

cannot find symbol
symbol: class DiskFileItemFactory
cannot find symbol
... -- wenn ich etwas aus dem o. g. Paket verwende
 
Hat mein Hinweis nicht geholfen? Oder hast du das noch gar nicht versucht?

Hast du mal (manuell) in das jar-File geschaut, ob die benötigten Klassen, die er nicht findet, auch wirklich enthalten sind?
 
Danke stg,

das hat geholfen!

Mit Rechtsklick auf das Projekt -- Eigenschaften -- Kategorie: Libraries -- Add JAR/Folder... (nicht Add Library...)

und dann hatte ich die Zip-Dateien zum Glück noch in einem separaten Ordner weit außerhalb aller Installationen -- beide ausgewählt -- [Öffnen] -- Netbeans hat eine ganze Weile gearbeitet

Netbeans und Tomcat beendet und neu gestartet (war vielleicht unnötig?)

und siehe da, in der Netbeans-Projekt-Ansicht (links) steht jetzt unten unter

[+] Libraries
[+] commons-fileupload-1.3.1-bin.zip
[+] commons-io-2.4-bin.zip

und im JSP-Code gibt es keine Fehlermeldungen mehr.

Vielen Dank für die schnelle Hilfe!

Yannick
 
Hallo stg,

es hat funktioniert, ich bin nur nicht so schnell (weil relativ neu in den Themen Java, Auswahl der richtigen IDE, und, und, und ...)

Da gucke ich mich lieber dreimal um, bevor ich (wieder) etwas falsch mache, außerdem müssen manche Dinge auch erst gefunden werden.

Z. B. mit dem Rechtsklick auf das Projekt kommt man ja nicht direkt zu den Libraries, sondern man muss erstmal runter zu Eigenschaften, und wenn du wirklich kaum Ahnung hast, ist das nicht so leicht.

Und schließlich: auch die Antwort muss ich erstmal schreiben, prüfen(Vorschau), korrigieren ...

Nochmal danke!

Wahrscheinlich ist es sinnvoll, das Thema zu schließen, denn aus meiner Sicht ist die Frage beantwortet.
Wie ich (manuell) in das jar-File schaue, frage ich dann mal bei Gelegenheit in einem neuen Thema.

Yannick
 
Zuletzt bearbeitet:
Ich meinte in der (aufgeklappten) Projektübersicht, da hast du ziemlich weit unten einen Ordner "Libraries" (siehe z.B. hier: http://s3.beckshome.com.s3.amazonaws.com/20061106-Netbeans-Visual-Web-Pack-Large.png / ist zwar eine ältere Netbeans-Version, aber an der Stelle hat sich eigentlich nichts geändert) .... aber du hast es ja auch so gefunden 🙂

Mit "Manuell ins jar schauen" meinte ich, dass du wirklich einfach mal mit einem zip-Programm wie 7zip o.Ä. einfach das jar-File öffnest (du musst es dazu nicht mal entpacken). Das Java-Package
Code:
org.apache.commons.fileupload
entspricht dann innerhalb des jar dem relativen Pfad
Code:
org/apache/commons/fileupload
 

Zurück
Oben