if (kv.length != 2 || kv[0].length() == 0 || kv[1].length() == 0)
throw new IllegalArgumentException(
sm.getString("resources.invalidAliasMapping", kvp));
-
+
+ File aliasLoc = new File(kv[1]);
+ if (!aliasLoc.exists()) {
+ throw new IllegalArgumentException(
+ sm.getString("resources.invalidAliasNotExist", kv[1]));
+ }
BaseDirContext context;
- if (kv[1].endsWith(".war") && !(new File(kv[1]).isDirectory())) {
+ if (kv[1].endsWith(".war") && !(aliasLoc.isDirectory())) {
context = new WARDirContext();
- } else {
+ } else if (aliasLoc.isDirectory()) {
context = new FileDirContext();
+ } else {
+ throw new IllegalArgumentException(
+ sm.getString("resources.invalidAliasFile", kv[1]));
}
context.setDocBase(kv[1]);
addAlias(kv[0], context);
resources.unbindFailed=Unbind failed: {0}
resources.invalidAliasPath=The alias path ''{0}'' must start with ''/''
resources.invalidAliasMapping=The alias mapping ''{0}'' is not valid
+resources.invalidAliasNotExist=The alias location ''{0}'' does not exist
+resources.invalidAliasFile=The alias location ''{0}'' points to a file that is not a WAR file
standardResources.alreadyStarted=Resources has already been started
standardResources.directory=File base {0} is not a directory
standardResources.exists=File base {0} does not exist