• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag
 

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
javax.servlet.UnavailableException: Error initializing servlet adaptor: null
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

javax.servlet.UnavailableException: Error initializing servlet adaptor: null


  • Subject: javax.servlet.UnavailableException: Error initializing servlet adaptor: null
  • From: Filippo Laurìa <email@hidden>
  • Date: Fri, 31 May 2013 19:35:24 +0200

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@hidden)
Help/Unsubscribe/Update your Subscription:

This email sent to email@hidden

  • Follow-Ups:
    • Re: javax.servlet.UnavailableException: Error initializing servlet adaptor: null
      • From: Theodore Petrosky <email@hidden>
  • Prev by Date: Re: Cannot find strings into WebObjects application files
  • Next by Date: Re: Cannot find strings into WebObjects application files
  • Previous by thread: Re: jenkins.wocommunity.org down?
  • Next by thread: Re: javax.servlet.UnavailableException: Error initializing servlet adaptor: null
  • Index(es):
    • Date
    • Thread