dmaass
I'm new here

Warum geht die Aktion "Veröffentlichen in das lokale Dateisystem" unter Linux (Debian) nicht mit absoluten Pfaden?

Hallo zusammen,

kann mir jemand sagen warum die Aktion "Veröffentlichung ausführen" ins lokale Dateisystem in den absoluten Pfad "/opt/apache-tomcat-9.0.16/webapps/ROOT" auf meinem Linux nicht geht?

Den Ordner gibt es, der Pfad ist korrekt geschrieben und an den Berechtigungen liegt es auch nicht!

"Konfiguration testen" sagt allerdings auch an das es fehlschlägt, warum?

Das Interessante ist, wenn ich den Pfad auf z.B "~/test" setze,  zeigt "Konfiguration testen" zwar an es sollte gehen. Aber es taucht im Zielordner nichts auf, sondern relativ zum Firstspirit.

Es scheint als kann es nicht mit Linux Pfaden umgehen. Daher geht es nur relativ...

Kann mir jemand von euch helfen?

Nachfolgend das Log:

FATAL 16.03.2019 23:57:20.993 (de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl): error in task 'deploy' - schedule entry 'generate full' (id=240) - java.lang.IllegalStateException: cannot create file system layer

java.lang.IllegalStateException: cannot create file system layer

at de.espirit.firstspirit.admin.FileTargetImpl.createFileSystem(FileTargetImpl.java:40)

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

at de.espirit.firstspirit.server.scheduler.DeployTaskExecutor.run(DeployTaskExecutor.java:74)

at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2510)

at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.executeLocal(ScheduleManagerImpl.java:2493)

at de.espirit.firstspirit.server.scheduler.ScheduleManagerImpl$TaskCallable.call(ScheduleManagerImpl.java:2425)

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

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

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

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

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

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

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

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

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

Caused by: de.espirit.common.util.FactoryException: cannot create file system layer for path '/opt/apache-tomcat-9.0.16/webapps/ROOT/'

at de.espirit.firstspirit.admin.FileFileSystemFactory.create(FileFileSystemFactory.java:29)

at de.espirit.firstspirit.admin.FileFileSystemFactory.create(FileFileSystemFactory.java:14)

at de.espirit.firstspirit.admin.FileTargetImpl.createFileSystem(FileTargetImpl.java:38)

... 14 more

Caused by: java.io.FileNotFoundException: /opt/apache-tomcat-9.0.16/webapps/ROOT

at de.espirit.firstspirit.io.FileFileSystem$FileFileSystemOperations.<init>(FileFileSystem.java:62)

at de.espirit.firstspirit.io.FileFileSystem.<init>(FileFileSystem.java:33)

at de.espirit.firstspirit.io.FileFileSystem.<init>(FileFileSystem.java:28)

at de.espirit.firstspirit.admin.FileFileSystemFactory.create(FileFileSystemFactory.java:25)

... 16 more

0 Kudos
1 Reply
felix_reinhold
Returning Responder

Hallo Dennis,

FS schmeißt an dieser Stelle scheinbar leider immer die gleiche FileNotFound-Exception raus - egal, ob der Ordner nicht existiert, nicht angelegt werden kann usw...

Ich würde dir für die weitere Analyse empfehlen einen Auftrag auf dem Server oder in einem Projekt anzulegen und dort einfach mal auf die Datei zuzugreifen:

new java.io.File("/opt/apache-tomcat-9.0.16/webapps/ROOT/").exists();

Dann solltest du eine entsprechend aussagekräftigere Variante der Exception bekommen.

Erhälst du keine Exception, dann vllt. noch mit folgender Zeile probieren

new java.io.File("/opt/apache-tomcat-9.0.16/webapps/ROOT/").mkdirs();

Viele Grüße

Felix

0 Kudos