Hi Horacio, I get similar problems (on debian woody) for the deployment of jar-files.
When I start tomcat (with jsvc) everythings fine and the webapp is startet. But I would like to unload and load the application with the manager application. In this case the start of the webapp fails, because tomcat cannot copy the jar-files (jstl beeing the first of them) into work/Standalone/localhost/<webapp>/WEB-INF/lib because it didn't create that dir. I did a strace analysis which shows, that tomcat - checks for the existance of .../localhost/<webapp>/WEB-INF/lib - tries to create this directory and fails (No such file or directory) (because .../localhost/<webapp>/WEB-INF does not exist) - checks all paths up to .../localhost/<webapp>/WEB-INF - finds that the path up to .../localhost/<webapp> exits and .../localhost/<webapp>/WEB-INF is missing - ignores this and tries to open the jar-File (for writing) This fails and an IOException is thrown mkdir("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", 0777) = 0 gettimeofday({1089624365, 625731}, NULL) = 0 write(21, "2004-07-12 11:26:05 StandardCont"..., 90) = 90 gettimeofday({1089624365, 626281}, NULL) = 0 write(21, "2004-07-12 11:26:05 WebappLoader"..., 180) = 180 gettimeofday({1089624365, 626677}, NULL) = 0 gettimeofday({1089624365, 626855}, NULL) = 0 stat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib", 0xbbffe43c) = -1 ENOENT (No such file or directory) mkdir("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib", 0777) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF", 0xbbffc394) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF", 0xbbffc394) = -1 ENOENT (No such file or directory) gettimeofday({1089624365, 629834}, NULL) = 0 write(21, "2004-07-12 11:26:05 WebappLoader"..., 190) = 190 open("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib/jstl.jar", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = -1 ENOENT (No such file or directory) Without jsvc it looks pretty much the same, except that the directory is created as expected. mkdir("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", 0777) = 0 gettimeofday({1089625315, 938740}, NULL) = 0 write(22, "2004-07-12 11:41:55 StandardCont"..., 90) = 90 gettimeofday({1089625315, 939285}, NULL) = 0 write(22, "2004-07-12 11:41:55 WebappLoader"..., 180) = 180 gettimeofday({1089625315, 939650}, NULL) = 0 gettimeofday({1089625315, 939830}, NULL) = 0 stat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib", 0xbbffe43c) = -1 ENOENT (No such file or directory) mkdir("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib", 0777) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF", 0xbbffc394) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF", 0xbbffc394) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 lstat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0 gettimeofday({1089625315, 943561}, NULL) = 0 stat64("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF", 0xbbffe40c) = -1 ENOENT (No such file or directory) mkdir("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF", 0777) = 0 mkdir("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib", 0777) = 0 gettimeofday({1089625315, 944311}, NULL) = 0 write(22, "2004-07-12 11:41:55 WebappLoader"..., 190) = 190 open("/usr/tanto/www/servers/jakarta-tomcat-4.1.30/work/Standalone/localhost/refdb_search/WEB-INF/lib/jstl.jar", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 23 But I don't see any reason, why the mkdir is left out, when running with jsvc. The java-source for this seems to be (WebappLoader.java ~ line 1061) File destDir = null; if (absoluteLibPath != null) { destDir = new File(absoluteLibPath); } else { copyJars = true; destDir = new File(workDir, libPath); destDir.mkdirs(); } // Looking up directory /WEB-INF/lib in the context try { NamingEnumeration enum = resources.listBindings(libPath); while (enum.hasMoreElements()) { Binding binding = (Binding) enum.nextElement(); String filename = libPath + "/" + binding.getName(); if (!filename.endsWith(".jar")) continue; // Copy JAR in the work directory, always (the JAR file // would get locked otherwise, which would make it // impossible to update it or remove it at runtime) File destFile = new File(destDir, binding.getName()); log(sm.getString("webappLoader.jarDeploy", filename, destFile.getAbsolutePath())); Resource jarResource = (Resource) binding.getObject(); if (copyJars) { if (!copy(jarResource.streamContent(), new FileOutputStream(destFile))) continue; } JarFile jarFile = new JarFile(destFile); classLoader.addJar(filename, jarFile, destFile); } so the directory should just be created with destDir.mkdirs(). How can this fail? I'm using java version "1.4.2_04" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_04-b05) Java HotSpot(TM) Client VM (build 1.4.2_04-b05, mixed mode) daemon 1.0 tomcat 4.1.30 on debian woody. The target system where this fails also is some suse linux. Unfortunately I don't have direct access to this system yet. Horacios question showed me that this is a problem on debian woody also. Morus --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]