You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Benjamin Rogge <to...@benjamin-rogge.de> on 2015/04/28 11:36:44 UTC

Locating WebAppConfig file in embedded tomcat

Hello,
we use an embedded Tomcat and are trying to update from version 7.0.40 
to 7.0.61. The the embedded tomcat instance starts up fine and our 
webapp is also running. However we get the following warning:

Apr 28, 2015 8:58:58 AM org.apache.catalina.startup.Tomcat 
getWebappConfigFileFromJar
WARNING: Unable to determine web application context.xml webapp-name
java.io.FileNotFoundException: webapp-name (System cannot find file)
	at java.util.zip.ZipFile.open(Native Method)
	at java.util.zip.ZipFile.<init>(ZipFile.java:215)
	at java.util.zip.ZipFile.<init>(ZipFile.java:145)
	at java.util.jar.JarFile.<init>(JarFile.java:153)
	at java.util.jar.JarFile.<init>(JarFile.java:117)
	at 
org.apache.catalina.startup.Tomcat.getWebappConfigFileFromJar(Tomcat.java:1162)
	at 
org.apache.catalina.startup.Tomcat.getWebappConfigFile(Tomcat.java:1140)
	at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:543)
	at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:524)
	at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:206)

(Notice, that "webapp-name" is not the actual name and "System cannot 
find file" is a translation of the original German message)


Our start-up process looks like this:

this.tomcat = new Tomcat();
this.tomcat.setBaseDir(".");
this.tomcat.getHost().setAutoDeploy(false);
this.tomcat.getHost().setDeployOnStartup(false);
this.tomcat.setPort(port);
final StandardContext webAppCtx = (StandardContext) 
this.tomcat.addWebapp("/weppapp-name", "webapp-name");

The directory structure looks like this, while working directory is 
"Application-Home": /Application-Home/webapps/webapp-name

We noticed that in Tomcat.getWebappConfigFileFromJar(Tomcat.java:1162), 
there is the following code:
  protected URL getWebappConfigFile(String path, String url) {
         File docBase = new File(path);
         if (docBase.isDirectory()) {
             return getWebappConfigFileFromDirectory(docBase, url);
         } else {
             return getWebappConfigFileFromJar(docBase, url);
         }
     }

The parameter "path" is "webapp-name" and the parameter "url" is 
"/webapp-name".  With the working dir being "Application-Home", new 
File(path) will resolve to "/Application-Home/webapp-name", which does 
not exist. Hence, Tomcat is proceeding to load the config file from a 
jar file, which leads to the warning mentioned above.

My questions are:
- What are the correct parameters for Tomcat.addWebapp(String 
contextPath, String docBase)?
- Is there a special working directory expected, while using an embedded 
Tomcat?

Thanks in advance for any support,
Benjamin Rogge







---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: Locating WebAppConfig file in embedded tomcat

Posted by Thusitha Thilina Dayaratne <th...@gmail.com>.
Hi

we use an embedded Tomcat and are trying to update from version 7.0.40 to
> 7.0.61. The the embedded tomcat instance starts up fine and our webapp is
> also running. However we get the following warning:
> Apr 28, 2015 8:58:58 AM org.apache.catalina.startup.Tomcat
> getWebappConfigFileFromJar
> WARNING: Unable to determine web application context.xml webapp-name
> java.io.FileNotFoundException: webapp-name (System cannot find file)
>         at java.util.zip.ZipFile.open(Native Method)
>         at java.util.zip.ZipFile.<init>(ZipFile.java:215)
>         at java.util.zip.ZipFile.<init>(ZipFile.java:145)
>         at java.util.jar.JarFile.<init>(JarFile.java:153)
>         at java.util.jar.JarFile.<init>(JarFile.java:117)
>         at org.apache.catalina.startup.Tomcat.getWebappConfigFileFromJa
> r(Tomcat.java:1162)
>         at org.apache.catalina.startup.Tomcat.getWebappConfigFile(Tomca
> t.java:1140)
>         at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:543)
>         at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:524)
>         at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:206)
> (Notice, that "webapp-name" is not the actual name and "System cannot find
> file" is a translation of the original German message)
>
> Our start-up process looks like this:
> this.tomcat = new Tomcat();
> this.tomcat.setBaseDir(".");
> this.tomcat.getHost().setAutoDeploy(false);
> this.tomcat.getHost().setDeployOnStartup(false);
> this.tomcat.setPort(port);
> final StandardContext webAppCtx = (StandardContext)
> this.tomcat.addWebapp("/weppapp-name", "webapp-name");


Here parameters should be context and the base path

The directory structure looks like this, while working directory is
> "Application-Home": /Application-Home/webapps/webapp-name
> We noticed that in Tomcat.getWebappConfigFileFromJar(Tomcat.java:1162),
> there is the following code:
>  protected URL getWebappConfigFile(String path, String url) {
>         File docBase = new File(path);
>         if (docBase.isDirectory()) {
>             return getWebappConfigFileFromDirectory(docBase, url);
>         } else {
>             return getWebappConfigFileFromJar(docBase, url);
>         }
>     }
> The parameter "path" is "webapp-name" and the parameter "url" is
> "/webapp-name".  With the working dir being "Application-Home", new
> File(path) will resolve to "/Application-Home/webapp-name", which does
> not exist. Hence, Tomcat is proceeding to load the config file from a jar
> file, which leads to the warning mentioned above.
> My questions are:
> - What are the correct parameters for Tomcat.addWebapp(String contextPath,
> String docBase)?


first parameter is the context of your web app and the 2nd parameter is the
base directory/absolute path

- Is there a special working directory expected, while using an embedded
Tomcat?

2015-04-28 15:06 GMT+05:30 Benjamin Rogge <to...@benjamin-rogge.de>:

> Hello,
> we use an embedded Tomcat and are trying to update from version 7.0.40 to
> 7.0.61. The the embedded tomcat instance starts up fine and our webapp is
> also running. However we get the following warning:
>
> Apr 28, 2015 8:58:58 AM org.apache.catalina.startup.Tomcat
> getWebappConfigFileFromJar
> WARNING: Unable to determine web application context.xml webapp-name
> java.io.FileNotFoundException: webapp-name (System cannot find file)
>         at java.util.zip.ZipFile.open(Native Method)
>         at java.util.zip.ZipFile.<init>(ZipFile.java:215)
>         at java.util.zip.ZipFile.<init>(ZipFile.java:145)
>         at java.util.jar.JarFile.<init>(JarFile.java:153)
>         at java.util.jar.JarFile.<init>(JarFile.java:117)
>         at
> org.apache.catalina.startup.Tomcat.getWebappConfigFileFromJar(Tomcat.java:1162)
>         at
> org.apache.catalina.startup.Tomcat.getWebappConfigFile(Tomcat.java:1140)
>         at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:543)
>         at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:524)
>         at org.apache.catalina.startup.Tomcat.addWebapp(Tomcat.java:206)
>
> (Notice, that "webapp-name" is not the actual name and "System cannot find
> file" is a translation of the original German message)
>
>
> Our start-up process looks like this:
>
> this.tomcat = new Tomcat();
> this.tomcat.setBaseDir(".");
> this.tomcat.getHost().setAutoDeploy(false);
> this.tomcat.getHost().setDeployOnStartup(false);
> this.tomcat.setPort(port);
> final StandardContext webAppCtx = (StandardContext)
> this.tomcat.addWebapp("/weppapp-name", "webapp-name");
>
> The directory structure looks like this, while working directory is
> "Application-Home": /Application-Home/webapps/webapp-name
>
> We noticed that in Tomcat.getWebappConfigFileFromJar(Tomcat.java:1162),
> there is the following code:
>  protected URL getWebappConfigFile(String path, String url) {
>         File docBase = new File(path);
>         if (docBase.isDirectory()) {
>             return getWebappConfigFileFromDirectory(docBase, url);
>         } else {
>             return getWebappConfigFileFromJar(docBase, url);
>         }
>     }
>
> The parameter "path" is "webapp-name" and the parameter "url" is
> "/webapp-name".  With the working dir being "Application-Home", new
> File(path) will resolve to "/Application-Home/webapp-name", which does not
> exist. Hence, Tomcat is proceeding to load the config file from a jar file,
> which leads to the warning mentioned above.
>
> My questions are:
> - What are the correct parameters for Tomcat.addWebapp(String contextPath,
> String docBase)?
> - Is there a special working directory expected, while using an embedded
> Tomcat?
>
> Thanks in advance for any support,
> Benjamin Rogge
>
>
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>


--