quality@glassfish.java.net

Re: PWC1420: Error invoking ServletContainerInitializer org.apache.jasper.runtime.TldScanner

From: Cay Horstmann <cay_at_horstmann.com>
Date: Wed, 30 Sep 2009 20:43:24 -0700

>
> TldScanner is an implementation of
> javax.servlet.ServletContainerInitializer
> provided by the GlassFish JSP container.
>
> javax.servlet.ServletContainerInitializer is a new Servlet 3.0 feature.
>
> TldScanner is notified of a webapp's deployment and passed the
> webapp's ServletContext to its onStartup method. Based on the
> ServletContext, it searches for any Tag Library Descriptor (TLD)
> resources, scan them for listener declarations, and registers the
> declared listeners programmatically with the ServletContext.
>
> Can you include the stacktrace?
>
> Kin-man (cc'ed) is going to help you debug this further, and will make any
> improvements to the error reporting.
>
> Thanks,
>
> Jan

Sure, here is the stack trace.

[#|2009-09-30T20:31:07.973-0700|WARNING|glassfish|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=25;_ThreadName=admin-listener-(6);|java.lang.IllegalStateException:
ContainerBase.addChild: start: org.apache.catalina.LifecycleException:
org.apache.catalina.LifecycleException: PWC1420: Error invoking
ServletContainerInitializer org.apache.jasper.runtime.TldScanner
java.lang.IllegalStateException: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException:
org.apache.catalina.LifecycleException: PWC1420: Error invoking
ServletContainerInitializer org.apache.jasper.runtime.TldScanner
        at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:932)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:912)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694)
        at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1816)
        at
com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1520)
        at com.sun.enterprise.web.WebApplication.start(WebApplication.java:93)
        at org.glassfish.internal.data.EngineRef.start(EngineRef.java:126)
        at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:229)
        at
org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:214)
        at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:307)
        at
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:172)
        at
org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:270)
        at
com.sun.enterprise.v3.admin.CommandRunnerImpl$4.execute(CommandRunnerImpl.java:403)
        at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:418)
        at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:505)
        at
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:138)
        at
com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:355)
        at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:195)
        at
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
        at
com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
        at
com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:753)
        at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:661)
        at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:914)
        at
com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:166)
        at
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
        at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
        at
com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
        at
com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
        at
com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
        at
com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
        at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
        at
com.sun.grizzly.util.FixedThreadPool$BasicWorker.dowork(FixedThreadPool.java:379)
        at
com.sun.grizzly.util.FixedThreadPool$BasicWorker.run(FixedThreadPool.java:360)
        at java.lang.Thread.run(Thread.java:619)
|#]

I looked for TLD files and found none in the app but four in JAR files
used by it:

appbase.jar
    852 Mon Nov 10 00:35:40 PST 2008 META-INF/taglib.tld
jsfcl.jar
   2084 Mon Nov 10 00:34:18 PST 2008 META-INF/jsfcl.tld
jsf-extensions-dynamic-faces-0.1.jar
  16427 Wed Feb 20 15:23:06 PST 2008 META-INF/jsf-ext-dynafaces.tld
webui-jsf.jar
428913 Thu Mar 20 18:09:44 PDT 2008 META-INF/webui-jsf.tld

As far as I can tell, these are all from Project Woodstock, which we are
in the process of eliminating.

I have no problem believing that one or more of those TLDs might have
issues, but really--tell me what the problem is. This stack trace is
just like what I get from my two year old twins--wah, wah, I am unhappy,
I am sooooo unhappy, wah, wah, wah.

Glassfish should be more mature than that.

Thanks,

Cay


-- 
Cay S. Horstmann | http://horstmann.com | mailto:cay@horstmann.com