Jan_Wehe
I'm new here

Veröffentlichung per FTP fehlgeschlagen

Hallo,

ich möchte ein Projekt per FTP veröffentlichen. Die eingegebenen Server- und Nutzerdaten sind korrekt und der FTP User hat auch Schreibrechte im entsprechenden Verzeichnis.

firstspirit_ftp.jpg

Wenn ich dann auf "Konfiguration testen" mache bekomme ich jedoch Fehlermeldungen.

Ich verstehe nicht wieso veruscht wird das Verzeichnis /pfad/des/ftp_users zu erstellen?! Dieses existiert doch bereits und dort hinein soll nur deployt werden...

INFO  09.02.2012 07:48:33.298 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=946441470999281568, user=ScheduleManager)

INFO  09.02.2012 07:48:33.360 (de.espirit.firstspirit.io.FtpFileSystemOperations): cannot enter block transfer mode - continue in stream mode

INFO  09.02.2012 07:48:33.394 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): close dummy session (ID=946441470999281568, user=ScheduleManager)

FATAL 09.02.2012 07:48:33.395 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): test task failed - java.lang.IllegalStateException: cannot create file system layer

...

Caused by: de.espirit.common.util.FactoryException: cannot create ftp file system layer - java.io.IOException: cannot create dir /pfad/des/ftp_users

...

Caused by: java.io.IOException: cannot create dir /pfad/des/ftp_users

0 Kudos
5 Replies
Peter_Jodeleit
Crownpeak employee

Ich verstehe nicht wieso veruscht wird das Verzeichnis /pfad/des/ftp_users zu erstellen?! Dieses existiert doch bereits und dort hinein soll nur deployt werden...

Um welche FirstSpirit-Version handelt es sich? Und welchen FTP-Server? Wahrscheinliche Ursache ist, das das Directory-Listing nicht verstanden wird. Bitte mal ein Listing und den kompletten Trace der Fehlermeldung posten...

Peter
0 Kudos

Es handelt sich um firstSpirit 4.2.454.47473 und als FTP wird ProFTPD Version 1.3.3c eingesetzt.

Da ich bis jetzt immer noch nicht weiß wie ich den erweiterten Editor nutzen kann hier leider ein unformatierter Trace...

INFO  09.02.2012 11:37:11.730 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=1606386799548163893, user=ScheduleManager)

INFO  09.02.2012 11:37:14.827 (de.espirit.firstspirit.io.FtpFileSystemOperations): cannot enter block transfer mode - continue in stream mode

INFO  09.02.2012 11:37:14.857 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): close dummy session (ID=1606386799548163893, user=ScheduleManager)

FATAL 09.02.2012 11:37:14.858 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): test task failed - java.lang.IllegalStateException: cannot create file system layer

java.lang.IllegalStateException: cannot create file system layer

    at de.espirit.firstspirit.admin.FtpTargetImpl.createFileSystem(FtpTargetImpl.java:305)

    at de.espirit.firstspirit.server.scheduler.DeployTaskExecutor.init(DeployTaskExecutor.java:321)

    at de.espirit.firstspirit.server.scheduler.DeployTaskExecutor.test(DeployTaskExecutor.java:252)

    at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl.test(ScheduleManagerImpl.java:955)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at de.espirit.firstspirit.io.DefaultServerHandler.callManager(DefaultServerHandler.java:62)

    at de.espirit.firstspirit.server.io.handler.ManagerCall.doCall(ManagerCall.java:91)

    at de.espirit.firstspirit.server.io.handler.ManagerCall.handle(ManagerCall.java:67)

    at de.espirit.firstspirit.server.io.ManagerCallWorker.run(ManagerCallWorker.java:108)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$RunnableWrapper.call(ExecutionManagerImpl.java:553)

    at de.espirit.firstspirit.server.ExecutionManagerImpl$ExtendedCallable.call(ExecutionManagerImpl.java:520)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at de.espirit.common.util.BoundedExecutorService$RunnableWrapper.run(BoundedExecutorService.java:419)

    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

    at java.util.concurrent.FutureTask.run(FutureTask.java:138)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    at java.lang.Thread.run(Thread.java:662)

    at de.espirit.common.util.SuspendableThread.run(SuspendableThread.java:36)

Caused by: de.espirit.common.util.FactoryException: cannot create ftp file system layer - java.io.IOException: cannot create dir /pfad/des/ftp_users

    at de.espirit.firstspirit.admin.FtpFileSystemFactory.create(FtpFileSystemFactory.java:84)

    at de.espirit.firstspirit.admin.FtpFileSystemFactory.create(FtpFileSystemFactory.java:24)

    at de.espirit.firstspirit.admin.FtpTargetImpl.createFileSystem(FtpTargetImpl.java:303)

    ... 23 more

Caused by: java.io.IOException: cannot create dir /pfad/des/ftp_users

    at de.espirit.firstspirit.io.FtpFileSystemOperations.<init>(FtpFileSystemOperations.java:90)

    at de.espirit.firstspirit.admin.FtpFileSystemFactory.create(FtpFileSystemFactory.java:82)

    ... 25 more

INFO  09.02.2012 11:37:14.858 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): finished test schedule task 'Deployment' - 1 fatal error(s), 0 error(s), 0 warning(s)

0 Kudos

Am Trace ist ersichtlich, das das CWD Kommando fehlschlägt. Bist du sicher, das das Verzeichnis exisitert und der Benutzer dort Lese-/Schreibrechte hat? Wenn ja, dann wäre wie gesagt ein exemplarisches Directory-Listing hilfreich.

Ausserdem kann man über den Eintrag "log4j.logger.de.espirit.firstspirit.io.FtpFileSystemOperations=TRACE" in der Logging-Konfiguration kurzfristig erweiterte Logging-Meldungen bekommen, um den Fehler weiter einzugrenzen.

Peter

Ich habe jetzt das erweiterte Logging aktiviert:

INFO  09.02.2012 12:38:45.189 (de.espirit.firstspirit.server.sessionmanagement.SessionManagerImpl): dummy session created (ID=4044696688139648581, user=ScheduleManager)

TRACE 09.02.2012 12:38:45.304 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MODE MODE B

WARN  09.02.2012 12:38:45.313 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 504 'MODE B' unsupported transfer mode

INFO  09.02.2012 12:38:45.314 (de.espirit.firstspirit.io.FtpFileSystemOperations): cannot enter block transfer mode - continue in stream mode

TRACE 09.02.2012 12:38:45.315 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: PWD PWD

TRACE 09.02.2012 12:38:45.325 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 257 "/" is the current directory

TRACE 09.02.2012 12:38:45.326 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var

WARN  09.02.2012 12:38:45.337 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var: File exists

TRACE 09.02.2012 12:38:45.337 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www

WARN  09.02.2012 12:38:45.347 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www: Permission denied

TRACE 09.02.2012 12:38:45.347 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www/vhosts

WARN  09.02.2012 12:38:45.358 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts: No such file or directory

TRACE 09.02.2012 12:38:45.359 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www/vhosts/domain

WARN  09.02.2012 12:38:45.369 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts/domain: No such file or directory

TRACE 09.02.2012 12:38:45.370 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: MKD MKD /var/www/vhosts/domain/httpdocs

WARN  09.02.2012 12:38:45.381 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts/domain/httpdocs: No such file or directory

TRACE 09.02.2012 12:38:45.382 (de.espirit.firstspirit.io.FtpFileSystemOperations): SENT: CWD CWD /var/www/vhosts/domain/httpdocs

WARN  09.02.2012 12:38:45.392 (de.espirit.firstspirit.io.FtpFileSystemOperations): RECEIVED: 550 /var/www/vhosts/domain/httpdocs: No such file or directory

Mich wundern die ganzen MKD Commands. Würde ein CWD in das angegebene Verzeichnis nicht völlig ausreichen?

0 Kudos

Ok, jetzt funktioniert es!

Der FTP user wird beim Login schon ins verzeichnis /var/www/vhosts/domain.de umgeleitet. Somit muss als Remote-Verzeichnis nur noch /httpdocs eingetragen werden.

Aber vielen Dank für die Denkansätze und somit die Lösung des Problems!

0 Kudos