[jira] Commented: (NANO-39) groovy scripted nanocontainer fails in servlet context
jira-yCVjj/[email protected] Fri, 20 Feb 2004 02:36:09 -0500 (EST)
| Newsgroups | gmane.comp.java.nanocontainer.devel |
|---|---|
| Message-ID | <[email protected]> |
The following comment has been added to this issue:
Author: Jacob Kjome
Created: Fri, 20 Feb 2004 2:34 AM
Body:
Upon further investigation I've found that moving back to groovy-beta3 fixes the issue. I have been using the very latest Groovy CVS and it looks like there is a regression of some sort. I'll close this and report it as a Groovy issue.
Jake
---------------------------------------------------------------------
View this comment:
http://jira.codehaus.org/secure/ViewIssue.jspa?key=NANO-39&page=comments#action_16973
---------------------------------------------------------------------
View the issue:
http://jira.codehaus.org/secure/ViewIssue.jspa?key=NANO-39
Here is an overview of the issue:
---------------------------------------------------------------------
Key: NANO-39
Summary: groovy scripted nanocontainer fails in servlet context
Type: Bug
Status: Unassigned
Priority: Major
Original Estimate: Unknown
Time Spent: Unknown
Remaining: Unknown
Project: NanoContainer
Components:
Core
Versions:
1.0-beta-1
Assignee:
Reporter: Jacob Kjome
Created: Fri, 13 Feb 2004 1:51 AM
Updated: Fri, 20 Feb 2004 2:34 AM
Environment: servlet container, scripting of nanocontainer done with Groovy
Description:
When setting up the nanocontainer servlet in web.xml using the context-param "nanocontainer.groovy", it only seems to work for the first container that is configured, or, the first compositionScope. If any other scope is provided such as a ServletRequest or HttpSession, it fails with the following message...
"Caused by: groovy.lang.MissingMethodException: No such method: buildContainer for class: nanocontainer with arguments: [org.picocontainer.defaults.DefaultPicoContainer-Le89R2mpRr8@public.gmane.org, org.apache.coyote.tomcat5.CoyoteRequestFacade@952905]"
I know it is working the for the first container (in the ServletContext compositionScope) because I print out the compositionScope as soon as the "buildContainer" method is entered and it says...
"compositionScope is: org.apache.catalina.core.ApplicationContextFacade-m6hyCi5e6VU@public.gmane.org"
Here is the script...
class DemoBuilder {
buildContainer(parent, compositionScope) {
System.out.println("compositionScope is: " + compositionScope);
pico = new org.picocontainer.defaults.DefaultPicoContainer(parent)
if (compositionScope instanceof javax.servlet.ServletRequest) {
System.out.println("I got here to register a component in the servlet request scope!!!!")
pico.registerComponentImplementation("util", SomeRequestUtil.class)
}
else if (compositionScope instanceof javax.servlet.http.HttpSession) {
System.out.println("I got here to register a component in the servlet session scope!!!!")
pico.registerComponentImplementation("counter", SomeCounter.class)
}
else if (compositionScope instanceof javax.servlet.ServletContext) {
//nothing to do for now
}
else {
//nothing to do for now
}
return pico
}
}
Here's the full stack trace....
org.nanocontainer.integrationkit.PicoCompositionException
at org.nanocontainer.script.groovy.GroovyContainerBuilder.createContainer(GroovyContainerBuilder.java:57)
at org.nanocontainer.integrationkit.LifecycleContainerBuilder.buildContainer(LifecycleContainerBuilder.java:25)
at org.nanocontainer.servlet.ServletRequestContainerLauncher.startContainer(ServletRequestContainerLauncher.java:48)
at org.nanocontainer.servlet.ServletRequestContainerFilter.doFilter(ServletRequestContainerFilter.java:36)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:257)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:206)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:828)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:700)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:584)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
Caused by: groovy.lang.MissingMethodException: No such method: buildContainer for class: nanocontainer with arguments: [org.picocontainer.defaults.DefaultPicoContainer-Le89R2mpRr8@public.gmane.org, org.apache.coyote.tomcat5.CoyoteRequestFacade@952905]
at groovy.lang.MetaClass.invokeStaticMethod(MetaClass.java:291)
at groovy.lang.MetaClass.invokeMethod(MetaClass.java:247)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at groovy.lang.MetaClass.doMethodInvoke(MetaClass.java:765)
at groovy.lang.MetaClass.invokeMethod(MetaClass.java:214)
at org.codehaus.groovy.runtime.Invoker.invokeMethod(Invoker.java:130)
at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:98)
at nanocontainer.invokeMethod(nanocontainer.groovy)
at org.nanocontainer.script.groovy.GroovyContainerBuilder.createContainer(GroovyContainerBuilder.java:55)
... 27 more
Jake
---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira