according to the developer, http://web-cat.org/node/2/content/forum
http://people.cs.vt.edu/~edwards/ http://web-cat.org/content/initial-setup-load-issues i like the last link. Ted --- On Fri, 5/31/13, Filippo Laurìa <[email protected]> wrote: > From: Filippo Laurìa <[email protected]> > Subject: javax.servlet.UnavailableException: Error initializing servlet > adaptor: null > To: "WebObjects-dev apple dot com" <[email protected]> > Date: Friday, May 31, 2013, 1:35 PM > Hello everyone, > > -- > Always on the same WebObjects application (Web-CAT) that, as > I already > said few mails ago, it's a collection of WebObjects > frameworks linked > together. > -- > > Now that I solved the problem described here [1], I > encountered some > troubles that I think are more serious than previous. > > Web-CAT uses a custom ServletAdaptor WCServletAdaptor that > extends > WOServletAdaptor adding some capabilities (as update > checking, etc.). > > I would underline that this class overrides init() method > that is > throwing the exception mentioned into this thread' subject. > > I modified init() method to prevent download of updates from > Web-CAT > update center. > > "original" init() method was: > -- > public void init() throws ServletException { > String webInfRoot = > super.getServletContext().getRealPath("WEB-INF"); > File webInfDir = new > File(webInfRoot); > propertiesFile = new > File(webInfDir, "update.properties"); > updateDir = new File(webInfDir, > UPDATE_SUBDIR); > loadProperties(); > > applyNecessaryUpdates(webInfDir); > try { > super.init(); > } catch (NoClassDefFoundError e) > { > initFailed = e; > } catch > (javax.servlet.UnavailableException e) { > initFailed = e; > } > } > -- > > I did a simple modification: > public void init() throws ServletException { > String webInfRoot = > super.getServletContext().getRealPath("WEB-INF"); > File webInfDir = new > File(webInfRoot); > propertiesFile = new > File(webInfDir, "update.properties"); > updateDir = new File(webInfDir, > UPDATE_SUBDIR); > loadProperties(); > > compute_woClasspatch(webInfDir); > > //applyNecessaryUpdates(webInfDir); > try { > super.init(); > } catch (NoClassDefFoundError e) > { > initFailed = e; > } catch > (javax.servlet.UnavailableException e) { > initFailed = e; > } > } > > here they are functions used: > > -- > private void loadProperties() { > properties = new Properties(); > if (propertiesFile.exists()) { > try { > > InputStream is = new FileInputStream(propertiesFile); > > properties.load(is); > > is.close(); > } catch > (IOException e) { > > System.out.println("Error loading properties from " > > + > propertiesFile.getAbsolutePath() + ":" + e); > } > } > } > > private void compute_woClasspatch(File > webInfDir) { > File mainBundle = null; > if (webInfDir.isDirectory()) { > File[] > bundleSearchDirs = webInfDir.listFiles(); > > //ottiene il path > assoluto della root dei frameworks > for (int i = 0; i > < bundleSearchDirs.length; i++) { > if > (bundleSearchDirs[i].isDirectory() > > && bundleSearchDirs[i].getName().endsWith(".woa")) > { > > mainBundle = new File(bundleSearchDirs[i], > "Contents"); > > > String absolutePath = > bundleSearchDirs[i].getAbsolutePath(); > > > frameworkDir = new File(absolutePath + > FRAMEWORK_SUBDIR1); > > > if (!frameworkDir.exists()) > > frameworkDir = new > File(absolutePath + > FRAMEWORK_SUBDIR2); > > break; > } > } > } > > if (frameworkDir != null > && frameworkDir.isDirectory()) { > File[] subdirs = > frameworkDir.listFiles(); > > java.util.Arrays.sort(subdirs, new FrameworkComparator()); > woClasspath = > classPathFrom(subdirs, mainBundle); > > System.out.println("Dynamically computed classpath:"); > > System.out.print(woClasspath); > } > } > > private void applyNecessaryUpdates(File webInfDir) { > File mainBundle = null; > if (webInfDir.isDirectory()) { > File[] > bundleSearchDirs = webInfDir.listFiles(); > for (int i = 0; i > < bundleSearchDirs.length; i++) { > if > (bundleSearchDirs[i].isDirectory() > > && > bundleSearchDirs[i].getName().endsWith(".woa")) { > > mainBundle = new File(bundleSearchDirs[i], > "Contents"); > > frameworkDir = new File( > > > bundleSearchDirs[i].getAbsolutePath() > > > + FRAMEWORK_SUBDIR1); > > if (!frameworkDir.exists()) { > > frameworkDir = new File( > > > bundleSearchDirs[i].getAbsolutePath() > > > + FRAMEWORK_SUBDIR2); > > } > > break; > } > } > File appDir = > webInfDir.getParentFile(); > > downloadNewUpdates(frameworkDir, mainBundle); > > applyPendingUpdates(frameworkDir, appDir); > > refreshSubsystemUpdaters(frameworkDir, mainBundle); > } > if (frameworkDir != null > && frameworkDir.isDirectory()) { > File[] subdirs = > frameworkDir.listFiles(); > > java.util.Arrays.sort(subdirs, new FrameworkComparator()); > woClasspath = > classPathFrom(subdirs, mainBundle); > > System.out.println("Dynamically computed classpath:"); > > System.out.print(woClasspath); > } > } > > > So you noticed that exception is thrown while recalling > _super.init();_ > How can it be possible? I mean, the only things done, before > calling > it, are some string manipulations and other operations on > files. > > Why a javax.servlet.UnvailableException is thrown? > > Having a look on the internet, some say that, perhaps, this > exception > comes out when there's some database connection's troubles. > Is it > possible in this case? > > Anyway, what can I do to fix this problem? > > > I'm sorry, if I wrote a lot of stuff but I would like to > explain very > well this problem. > > > Thank you everyone. > > [1]: http://lists.apple.com/archives/webobjects-dev/2013/May/msg00256.html > _______________________________________________ > Do not post admin requests to the list. They will be > ignored. > Webobjects-dev mailing list ([email protected]) > Help/Unsubscribe/Update your Subscription: > https://lists.apple.com/mailman/options/webobjects-dev/tedpet5%40yahoo.com > > This email sent to [email protected] > _______________________________________________ Do not post admin requests to the list. They will be ignored. Webobjects-dev mailing list ([email protected]) Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com This email sent to [email protected]
