Hallo Zusammen, ich möchte wie der namen Schon Sagt die Verzeichnisse eines Webspace Auflisten. Ich habe folgende Code
FtpDirEntry fde;
root.add(new DefaultMutableTreeNode("test"));
jTree1.setModel(tm);
jTree1.repaint();
String host = InetAddress.getByName(jTextField1.getText()).getHostAddress();
int port = Integer.parseInt(jTextField2.getText());
SocketAddress sdr = new InetSocketAddress(host,port);
jTextPane1.setText(jTextPane1.getText() + "Verbinde mit : " + host + "
");
FtpClient client = FtpClient.create();
client.connect(sdr);
client.login(jTextField3.getText(), jPasswordField1.getPassword());
if(client.isConnected()==true){
jTextPane1.setText(jTextPane1.getText() + "mit Server Verbunden"+ "
");
jTextPane1.setText(jTextPane1.getText() + client.getWelcomeMsg() + "
");
jTextPane1.setText(jTextPane1.getText() + "Letzte Datei " + client.getLastFileName() + "
");
String dir=client.getWorkingDirectory();
client.changeDirectory(dir);
jTextPane1.setText(jTextPane1.getText() + "neues Verzwichniss " + client.getWorkingDirectory() + "
");
Iterator<FtpDirEntry> i = client.listFiles(dir);
LinkedList<String> list = new LinkedList<String>();
while(i.hasNext()){
fde = i.next();
list.add(fde.getName());
System.out.println(fde.getName());
}
}
} catch (UnknownHostException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
} catch (FtpProtocolException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
}```
und diesen fehler
```Aug 11, 2013 6:47:51 PM ftpuploadapplet.main jButton2ActionPerformed
SEVERE: null
java.net.SocketException: Permission denied: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at sun.net.ftp.impl.FtpClient.readServerResponse(FtpClient.java:421)
at sun.net.ftp.impl.FtpClient.readReply(FtpClient.java:498)
at sun.net.ftp.impl.FtpClient.issueCommand(FtpClient.java:533)
at sun.net.ftp.impl.FtpClient.issueCommandCheck(FtpClient.java:544)
at sun.net.ftp.impl.FtpClient.openPassiveDataConnection(FtpClient.java:607)
at sun.net.ftp.impl.FtpClient.openDataConnection(FtpClient.java:710)
at sun.net.ftp.impl.FtpClient.listFiles(FtpClient.java:1883)
at ftpuploadapplet.main.jButton2ActionPerformed(main.java:225)
at ftpuploadapplet.main.access$100(main.java:31)
at ftpuploadapplet.main$2.actionPerformed(main.java:143)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)```
Danke im Voraus Andy
[QUOTE=Andy16823]Hallo, es wird auf dies Verwiesen
Iterator<FtpDirEntry> i = client.listFiles(dir);[/QUOTE]
Ich vermute mal, dass deise Stelle aus dem Eingangspost das Problem ist:String dir=client.getWorkingDirectory(); client.changeDirectory(dir);Wenn ich das richtig interpretiere holst Du Dir das lokale Arbeitsverzeichnis und setzt es als Pfad im entfernten System. Das sollte in der Tat überdurchschnittlich oft fehl schlagen…
FtpDirEntry fde;
root.add(new DefaultMutableTreeNode("test"));
jTree1.setModel(tm);
jTree1.repaint();
String host = InetAddress.getByName(jTextField1.getText()).getHostAddress();
int port = Integer.parseInt(jTextField2.getText());
SocketAddress sdr = new InetSocketAddress(host,port);
jTextPane1.setText(jTextPane1.getText() + "Verbinde mit : " + host + "
");
FtpClient client = FtpClient.create();
client.connect(sdr);
client.login(jTextField3.getText(), jPasswordField1.getPassword());
if(client.isConnected()==true){
jTextPane1.setText(jTextPane1.getText() + "mit Server Verbunden"+ "
");
jTextPane1.setText(jTextPane1.getText() + client.getWelcomeMsg() + "
");
jTextPane1.setText(jTextPane1.getText() + "Letzte Datei " + client.getLastFileName() + "
");
String dir = client.getWorkingDirectory();
Iterator<FtpDirEntry> i = client.listFiles(dir);
LinkedList<String> list = new LinkedList<String>();
while(i.hasNext()){
fde = i.next();
list.add(fde.getName());
System.out.println(fde.getName());
}
}
} catch (UnknownHostException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
} catch (FtpProtocolException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(main.class.getName()).log(Level.SEVERE, null, ex);
}```
Der fehler ist nun
```Aug 11, 2013 7:50:26 PM ftpuploadapplet.main jButton2ActionPerformed
SEVERE: null
java.net.SocketException: Permission denied: recv failed
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
at sun.net.ftp.impl.FtpClient.readServerResponse(FtpClient.java:421)
at sun.net.ftp.impl.FtpClient.readReply(FtpClient.java:498)
at sun.net.ftp.impl.FtpClient.issueCommand(FtpClient.java:533)
at sun.net.ftp.impl.FtpClient.issueCommandCheck(FtpClient.java:544)
at sun.net.ftp.impl.FtpClient.openPassiveDataConnection(FtpClient.java:607)
at sun.net.ftp.impl.FtpClient.openDataConnection(FtpClient.java:710)
at sun.net.ftp.impl.FtpClient.listFiles(FtpClient.java:1883)
at ftpuploadapplet.main.jButton2ActionPerformed(main.java:225)
at ftpuploadapplet.main.access$100(main.java:33)
at ftpuploadapplet.main$2.actionPerformed(main.java:148)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6505)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6270)
at java.awt.Container.processEvent(Container.java:2229)
at java.awt.Component.dispatchEventImpl(Component.java:4861)
at java.awt.Container.dispatchEventImpl(Container.java:2287)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
at java.awt.Container.dispatchEventImpl(Container.java:2273)
at java.awt.Component.dispatchEvent(Component.java:4687)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
at java.awt.EventQueue.access$200(EventQueue.java:103)
at java.awt.EventQueue$3.run(EventQueue.java:694)
at java.awt.EventQueue$3.run(EventQueue.java:692)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
at java.awt.EventQueue$4.run(EventQueue.java:708)
at java.awt.EventQueue$4.run(EventQueue.java:706)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)
[QUOTE=Andy16823]Das war nicht das Problemm, hängt es eventuell daran das ich das über ein JApplet Ausführe[/QUOTE]Das kann gut sein. Applets dürfen ja erstmal nicht in das lokale Dateisystem schreiben.
Permission denied ist doch eh Aussagekräftig. Entweder du hast falsche Benutzerdaten oder du darfst aus dem Applet heraus keine Netzwerkverbindungen aufbauen (nicht signiert)
Permission denied ist doch eh Aussagekräftig. Entweder du hast falsche Benutzerdaten oder du darfst aus dem Applet heraus keine Netzwerkverbindungen aufbauen (nicht signiert)[/QUOTE]
Du erhältst ja schon die Antwort des Servers. Der Empfang ist fehlgeschlagen aufgrund mangelnder rechte.
Lass mal das wechseln des Wirkung dir weg.und poste mal bitte auch dein Log. Müsste ja was in der Console stehen dazu, weil du machst ja schon ligausgaben.