David H. DeWolf wrote:
> You're finding some interesting things.  If you find anything that
> would be easier to implement by changing an implementation of pluto,
> let us know.  It's possible that any enhancements you'd need would
> also make someone else's life easier.

In an attempt to document more carefully what I had done, I was looking at my
code and noticed a subtle bug that was causing me to wrongly interpret the
symptoms I was seeing.   It turned out that the null 'driverConfig' value was
not a cross-context problem as I suspected, but was heing caused because the
ServletContext value was being created twice by the initializer, and the saved
attributes were being lost in the process.

Having fixed that code, the test portlet appears to be properly dispatched, and
somewhere around the rendering of portlet-skin.jsp I am getting an exception:

[[
Nested Exception is org.apache.jasper.JasperException: The absolute uri:
http://java.sun.com/portlet cannot be resolved in either web.xml or the jar
files deployed with this application
]]

I am at a loss to understand why the system is attempting to resolve
http://java.sun.com/portlet:  any ideas?

#g
--

A full console log of the run to this point, and a copy of the stack, are below.
 The code has been stopped on a "PortletException" breakpoint, about here:
[[
            } catch (javax.servlet.ServletException e) {
                String message = EXCEPTIONS.getString("error.portlet.invoke");
                if(LOG.isErrorEnabled()) {
                    LOG.error(message);
                }
]]
in file pluto/core/PortletInvoker.java.

(Some line numbers may differ from the current codebase, as I have been
inserting some additional log statements.)

[[
DEBUG - ServletContext created: path: /pluto
DEBUG - WebApplication path: /pluto, context:
[EMAIL PROTECTED]
INFO - Starting up Pluto Portal Driver...
DEBUG -  * Retreaving portal driver configuration...
DEBUG - Retrieving driver configuration from:
/WEB-INF/pluto-portal-driver-services-config.xml
INFO - Loading XML bean definitions from (no description)
DEBUG - Using JAXP implementation
[EMAIL PROTECTED]
DEBUG - Trying to resolve XML entity with public ID [-//SPRING//DTD BEAN//EN]
and system ID [http://www.springframework.org/dtd/spring-beans.dtd]
DEBUG - Trying to locate [spring-beans.dtd] under
[/org/springframework/beans/factory/xml/]
DEBUG - Found beans DTD [http://www.springframework.org/dtd/spring-beans.dtd] in
classpath
DEBUG - Loading bean definitions
DEBUG - Default lazy init 'false'
DEBUG - Default dependency check 'none'
DEBUG - Default autowire 'no'
DEBUG - No XML 'id' specified - using 'DriverConfiguration' as ID and [] as 
aliases
DEBUG - Registering bean definition with id 'DriverConfiguration'
DEBUG - No XML 'id' specified - using 'PropertyConfigService' as ID and [] as
aliases
DEBUG - Registering bean definition with id 'PropertyConfigService'
DEBUG - No XML 'id' specified - using 'PortletRegistryService' as ID and [] as
aliases
DEBUG - Registering bean definition with id 'PortletRegistryService'
DEBUG - No XML 'id' specified - using 'RenderConfigService' as ID and [] as 
aliases
DEBUG - Registering bean definition with id 'RenderConfigService'
DEBUG - Found 4 <bean> elements defining beans
INFO - Creating shared instance of singleton bean 'DriverConfiguration'
DEBUG - Creating instance of bean 'DriverConfiguration' with merged definition
[Root bean with class
[org.apache.pluto.driver.config.impl.DriverConfigurationImpl] defined in (no
description)]
DEBUG - Resolving reference from property 'constructor argument' in bean
'DriverConfiguration' to bean 'PortletRegistryService'
INFO - Creating shared instance of singleton bean 'PortletRegistryService'
DEBUG - Creating instance of bean 'PortletRegistryService' with merged
definition [Root bean with class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl] defined in
(no description)]
DEBUG - Getting BeanInfo for class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl]
DEBUG - Caching PropertyDescriptors for class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl]
DEBUG - Found property 'class' of type [class java.lang.Class]; editor=[null]
DEBUG - Found property 'containerName' of type [class java.lang.String];
editor=[null]
DEBUG - Found property 'defaultPage' of type [class
org.apache.pluto.driver.services.impl.resource.PageConfig]; editor=[null]
DEBUG - Found property 'pages' of type [interface java.util.List]; editor=[null]
DEBUG - Found property 'portalName' of type [class java.lang.String]; 
editor=[null]
DEBUG - Found property 'portalVersion' of type [class java.lang.String];
editor=[null]
DEBUG - Found property 'portletApplications' of type [interface java.util.Set];
editor=[null]
DEBUG - Found property 'supportedPortletModes' of type [interface
java.util.Set]; editor=[null]
DEBUG - Found property 'supportedWindowStates' of type [interface
java.util.Set]; editor=[null]
DEBUG - Class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl] is 
cache-safe
DEBUG - Invoking BeanPostProcessors before initialization of bean
'PortletRegistryService'
DEBUG - Invoking BeanPostProcessors after initialization of bean
'PortletRegistryService'
DEBUG - Resolving reference from property 'constructor argument' in bean
'DriverConfiguration' to bean 'RenderConfigService'
INFO - Creating shared instance of singleton bean 'RenderConfigService'
DEBUG - Creating instance of bean 'RenderConfigService' with merged definition
[Root bean with class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl] defined in
(no description)]
DEBUG - Using cached introspection results for class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl]
DEBUG - Invoking BeanPostProcessors before initialization of bean
'RenderConfigService'
DEBUG - Invoking BeanPostProcessors after initialization of bean
'RenderConfigService'
DEBUG - Resolving reference from property 'constructor argument' in bean
'DriverConfiguration' to bean 'PropertyConfigService'
INFO - Creating shared instance of singleton bean 'PropertyConfigService'
DEBUG - Creating instance of bean 'PropertyConfigService' with merged definition
[Root bean with class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl] defined in
(no description)]
DEBUG - Using cached introspection results for class
[org.apache.pluto.driver.services.impl.resource.ResourceServicesImpl]
DEBUG - Invoking BeanPostProcessors before initialization of bean
'PropertyConfigService'
DEBUG - Invoking BeanPostProcessors after initialization of bean
'PropertyConfigService'
DEBUG - Getting BeanInfo for class
[org.apache.pluto.driver.config.impl.DriverConfigurationImpl]
DEBUG - Caching PropertyDescriptors for class
[org.apache.pluto.driver.config.impl.DriverConfigurationImpl]
DEBUG - Found property 'class' of type [class java.lang.Class]; editor=[null]
DEBUG - Found property 'containerName' of type [class java.lang.String];
editor=[null]
DEBUG - Found property 'pages' of type [interface java.util.Collection];
editor=[null]
DEBUG - Found property 'portalName' of type [class java.lang.String]; 
editor=[null]
DEBUG - Found property 'portalVersion' of type [class java.lang.String];
editor=[null]
DEBUG - Found property 'portletApplications' of type [interface
java.util.Collection]; editor=[null]
DEBUG - Found property 'supportedPortletModes' of type [interface
java.util.Collection]; editor=[null]
DEBUG - Found property 'supportedWindowStates' of type [interface
java.util.Collection]; editor=[null]
DEBUG - Class [org.apache.pluto.driver.config.impl.DriverConfigurationImpl] is
cache-safe
INFO - Bean 'DriverConfiguration' instantiated via constructor [public
org.apache.pluto.driver.config.impl.DriverConfigurationImpl(org.apache.pluto.driver.config.impl.PropertyConfigService,org.apache.pluto.driver.config.impl.PortletRegistryService,org.apache.pluto.driver.config.impl.RenderConfigService)]
DEBUG - Invoking BeanPostProcessors before initialization of bean
'DriverConfiguration'
DEBUG - Invoking BeanPostProcessors after initialization of bean
'DriverConfiguration'
DEBUG - Setting up digester...
DEBUG -  - - Adding PortletApp Configuration for: /testsuite
DEBUG - Driver Configuration of type class
org.apache.pluto.driver.config.impl.DriverConfigurationImpl Initialized and
Ready For Service
DEBUG -  * Creating portal context [pluto-portal-driver/1.1.0-ALPHA]...
DEBUG -  * Creating container services...
DEBUG -  * Creating portlet container...
INFO - Portlet Container [Pluto Portal Driver] created.
DEBUG -  * Initializing portlet container...
DEBUG - Portlet Container [Pluto Portal Driver] successfully initialized.
INFO - Pluto Portal Driver started.
DEBUG - ServletContext.setAttribute: path: /pluto,
[EMAIL PROTECTED]
DEBUG - ServletContext.setAttribute: path: /pluto,
[EMAIL PROTECTED]
DEBUG - ServletContext created: path: /testsuite
DEBUG - WebApplication path: /testsuite, context:
[EMAIL PROTECTED]
DEBUG - String Manager Created for package: org.apache.pluto.core
DEBUG - Using Descriptor Service Impl:
org.apache.pluto.descriptors.services.castor.PortletAppDescriptorServiceImpl
DEBUG - PortalDriverServlet.doGet: PortalURL: http://localhost:0/pluto/portal?
DEBUG - PortalDriverServlet.doGet: actionWindowId: null
DEBUG - PortalDriverServlet.doGet: driverConfig:
[EMAIL PROTECTED]
DEBUG - Rendering Portal: Requested Page: null
DEBUG - Requested page is null.  Returning default: Test Page
DEBUG - Parent class loader is: [EMAIL PROTECTED]
DEBUG - Scratch dir for the JSP engine is: C:\DOCUME~1\Graham\LOCALS~1\Temp
DEBUG - IMPORTANT: Do not modify the generated servlets
DEBUG - JspEngine --> /WEB-INF/fragments/portlet.jsp
DEBUG -              ServletPath: /WEB-INF/fragments/portlet.jsp
DEBUG -                 PathInfo: null
DEBUG -                 RealPath:
D:\Work\OxfordCS\Pluto-1.1\pluto-unittest\src\test\portal\WEB-INF\fragments\portlet.jsp
DEBUG -               RequestURI: /pluto/WEB-INF/fragments/portlet.jsp
DEBUG -              QueryString:
DEBUG -           Request Params:
DEBUG - JspEngine --> /WEB-INF/fragments/template.jsp
DEBUG -              ServletPath: /WEB-INF/fragments/template.jsp
DEBUG -                 PathInfo: null
DEBUG -                 RealPath:
D:\Work\OxfordCS\Pluto-1.1\pluto-unittest\src\test\portal\WEB-INF\fragments\template.jsp
DEBUG -               RequestURI: /pluto/WEB-INF/fragments/template.jsp
DEBUG -              QueryString:
DEBUG -           Request Params:
DEBUG - JspEngine --> /WEB-INF/fragments/portlet-page.jsp
DEBUG -              ServletPath: /WEB-INF/fragments/template.jsp
DEBUG -                 PathInfo: null
DEBUG -                 RealPath:
D:\Work\OxfordCS\Pluto-1.1\pluto-unittest\src\test\portal\WEB-INF\fragments\portlet-page.jsp
DEBUG -               RequestURI: /pluto/WEB-INF/fragments/template.jsp
DEBUG -              QueryString:
DEBUG -           Request Params:
DEBUG - JspEngine --> /WEB-INF/fragments/portlet-skin.jsp
DEBUG -              ServletPath: /WEB-INF/fragments/template.jsp
DEBUG -                 PathInfo: null
DEBUG -                 RealPath:
D:\Work\OxfordCS\Pluto-1.1\pluto-unittest\src\test\portal\WEB-INF\fragments\portlet-skin.jsp
DEBUG -               RequestURI: /pluto/WEB-INF/fragments/template.jsp
DEBUG -              QueryString:
DEBUG -           Request Params:
DEBUG - Evaluated portletId to: /testsuite.TestPortlet1
DEBUG - Rendering Portlet Window:
[EMAIL PROTECTED]
DEBUG - getContext: /testsuite, context:
[EMAIL PROTECTED]
DEBUG - Portlet Container [Pluto Portal Driver]: Render request recieved.
DEBUG - String Manager Created for package: org.apache.pluto.core.impl
DEBUG - Portlet Container [Pluto Portal Driver]: Invoker Created.
DEBUG - Performing Render Invocation
DEBUG - Loading PortletAppDD for context: /testsuite
DEBUG - getContext: /testsuite, context:
[EMAIL PROTECTED]
DEBUG - Retrieved context:
[EMAIL PROTECTED]
DEBUG - PortletRequestDispatcher requested: /jsp/introduction.jsp
DEBUG - Parent class loader is: [EMAIL PROTECTED]
DEBUG - Scratch dir for the JSP engine is: C:\DOCUME~1\Graham\LOCALS~1\Temp
DEBUG - IMPORTANT: Do not modify the generated servlets
DEBUG - JspEngine --> /jsp/introduction.jsp
DEBUG -              ServletPath: /WEB-INF/fragments/portlet-skin.jsp
DEBUG -                 PathInfo: null
DEBUG -                 RealPath:
D:\Work\OxfordCS\Pluto-1.1\pluto-unittest\src\test\testsuite\jsp\introduction.jsp
DEBUG -               RequestURI: /pluto/WEB-INF/fragments/portlet-skin.jsp
DEBUG -              QueryString:
DEBUG -           Request Params:
javax.portlet.PortletException
        at
org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:80)
        at org.apache.pluto.testsuite.TestPortlet.doView(TestPortlet.java:171)
        at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
        at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
        at 
org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:162)
        at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:113)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at org.apache.pluto.core.PortletInvoker.invoke(PortletInvoker.java:156)
        at org.apache.pluto.core.PortletInvoker.render(PortletInvoker.java:103)
        at
org.apache.pluto.core.PortletContainerImpl.doRender(PortletContainerImpl.java:140)
        at 
org.apache.pluto.driver.tags.PortletTag.doStartTag(PortletTag.java:94)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp._jspx_meth_pluto_portlet_0(org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp:96)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp:71)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp._jspx_meth_c_forEach_0(org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp:108)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp:66)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at
org.apache.jsp.WEB_002dINF.fragments.template_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.template_jsp:108)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:54)
        at 
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:693)
        at 
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:660)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.portlet_jsp:59)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:54)
        at 
org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.InvocationContextImpl.service(InvocationContextImpl.java:80)
        at
com.meterware.servletunit.ServletUnitClient.newResponse(ServletUnitClient.java:118)
        at com.meterware.httpunit.WebWindow.getResource(WebWindow.java:164)
        at 
com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:128)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:121)
        at com.meterware.httpunit.WebClient.getResponse(WebClient.java:113)
        at
org.apache.pluto.unittest.TestPortletAccess.testDoGetHttpServletRequestHttpServletResponse(TestPortletAccess.java:96)
        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:585)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
Caused by: org.apache.jasper.JasperException: The absolute uri:
http://java.sun.com/portlet cannot be resolved in either web.xml or the jar
files deployed with this application
        at
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
        at 
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
        at 
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
        at
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
        at
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
        at 
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
        at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
        at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1543)
        at org.apache.jasper.compiler.Parser.parse(Parser.java:126)
        at 
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
        at 
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
        at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
        at 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at
org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:71)
        ... 75 more

Nested Exception is org.apache.jasper.JasperException: The absolute uri:
http://java.sun.com/portlet cannot be resolved in either web.xml or the jar
files deployed with this application
        at
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
        at 
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
        at 
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
        at
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
        at
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
        at 
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
        at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
        at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1543)
        at org.apache.jasper.compiler.Parser.parse(Parser.java:126)
        at 
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:211)
        at 
org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
        at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
        at 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:293)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at
org.apache.pluto.core.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:71)
        at org.apache.pluto.testsuite.TestPortlet.doView(TestPortlet.java:171)
        at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
        at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
        at 
org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:162)
        at org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:113)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at org.apache.pluto.core.PortletInvoker.invoke(PortletInvoker.java:156)
        at org.apache.pluto.core.PortletInvoker.render(PortletInvoker.java:103)
        at
org.apache.pluto.core.PortletContainerImpl.doRender(PortletContainerImpl.java:140)
        at 
org.apache.pluto.driver.tags.PortletTag.doStartTag(PortletTag.java:94)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp._jspx_meth_pluto_portlet_0(org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp:96)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.portlet_002dskin_jsp:71)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp._jspx_meth_c_forEach_0(org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp:108)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.portlet_002dpage_jsp:66)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.include(RequestDispatcherImpl.java:59)
        at 
org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:966)
        at
org.apache.jsp.WEB_002dINF.fragments.template_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.template_jsp:108)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:54)
        at 
org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:693)
        at 
org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:660)
        at
org.apache.jsp.WEB_002dINF.fragments.portlet_jsp._jspService(org.apache.jsp.WEB_002dINF.fragments.portlet_jsp:59)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:54)
        at 
org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:123)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
com.meterware.servletunit.InvocationContextImpl.service(InvocationContextImpl.java:80)
        at
com.meterware.servletunit.ServletUnitClient.newResponse(ServletUnitClient.java:118)
        at com.meterware.httpunit.WebWindow.getResource(WebWindow.java:164)
        at 
com.meterware.httpunit.WebWindow.getSubframeResponse(WebWindow.java:128)
        at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:121)
        at com.meterware.httpunit.WebClient.getResponse(WebClient.java:113)
        at
org.apache.pluto.unittest.TestPortletAccess.testDoGetHttpServletRequestHttpServletResponse(TestPortletAccess.java:96)
        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:585)
        at junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:478)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:344)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
]]

And a copy of the stack at the breakpoint:
[[
Thread [main] (Suspended)
        PortletInvoker.invoke(PortletRequestImpl, PortletResponseImpl, Integer) 
line: 171
        PortletInvoker.render(RenderRequestImpl, RenderResponseImpl) line: 103
        PortletContainerImpl.doRender(PortletWindow, HttpServletRequest,
HttpServletResponse) line: 140
        PortletTag.doStartTag() line: 94
        portlet-skin.jsp line: 3
        portlet-skin.jsp line: 3
        portlet_002dskin_jsp(HttpJspBase).service(HttpServletRequest,
HttpServletResponse) line: 97
        portlet_002dskin_jsp(HttpServlet).service(ServletRequest, 
ServletResponse)
line: 853
        JspServletWrapper.service(HttpServletRequest, HttpServletResponse, 
boolean)
line: 322
        JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse, 
String,
Throwable, boolean) line: 291
        JspServlet.service(HttpServletRequest, HttpServletResponse) line: 241
        JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 
853
        RequestDispatcherImpl.include(ServletRequest, ServletResponse) line: 59
        JspRuntimeLibrary.include(ServletRequest, ServletResponse, String, 
JspWriter,
boolean) line: 966
        portlet-page.jsp line: 8
        portlet-page.jsp line: 4
        portlet_002dpage_jsp(HttpJspBase).service(HttpServletRequest,
HttpServletResponse) line: 97
        portlet_002dpage_jsp(HttpServlet).service(ServletRequest, 
ServletResponse)
line: 853
        JspServletWrapper.service(HttpServletRequest, HttpServletResponse, 
boolean)
line: 322
        JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse, 
String,
Throwable, boolean) line: 291
        JspServlet.service(HttpServletRequest, HttpServletResponse) line: 241
        JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 
853
        RequestDispatcherImpl.include(ServletRequest, ServletResponse) line: 59
        JspRuntimeLibrary.include(ServletRequest, ServletResponse, String, 
JspWriter,
boolean) line: 966
        template.jsp line: 40
        template_jsp(HttpJspBase).service(HttpServletRequest, 
HttpServletResponse) line: 97
        template_jsp(HttpServlet).service(ServletRequest, ServletResponse) 
line: 853
        JspServletWrapper.service(HttpServletRequest, HttpServletResponse, 
boolean)
line: 322
        JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse, 
String,
Throwable, boolean) line: 291
        JspServlet.service(HttpServletRequest, HttpServletResponse) line: 241
        JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 
853
        RequestDispatcherImpl.forward(ServletRequest, ServletResponse) line: 54
        PageContextImpl.doForward(String) line: 693
        PageContextImpl.forward(String) line: 660
        portlet.jsp line: 4
        portlet_jsp(HttpJspBase).service(HttpServletRequest, 
HttpServletResponse) line: 97
        portlet_jsp(HttpServlet).service(ServletRequest, ServletResponse) line: 
853
        JspServletWrapper.service(HttpServletRequest, HttpServletResponse, 
boolean)
line: 322
        JspServlet.serviceJspFile(HttpServletRequest, HttpServletResponse, 
String,
Throwable, boolean) line: 291
        JspServlet.service(HttpServletRequest, HttpServletResponse) line: 241
        JspServlet(HttpServlet).service(ServletRequest, ServletResponse) line: 
853
        RequestDispatcherImpl.forward(ServletRequest, ServletResponse) line: 54
        PortalDriverServlet.doGet(HttpServletRequest, HttpServletResponse) 
line: 123
        PortalDriverServlet(HttpServlet).service(HttpServletRequest,
HttpServletResponse) line: 740
        PortalDriverServlet(HttpServlet).service(ServletRequest, 
ServletResponse) line: 853
        InvocationContextImpl.service() line: 80
        ServletUnitClient.newResponse(WebRequest, FrameSelector) line: 118
        WebWindow.getResource(WebRequest) line: 164
        WebWindow.getSubframeResponse(WebRequest, RequestContext) line: 128
        WebWindow.getResponse(WebRequest) line: 121
        ServletUnitClient(WebClient).getResponse(WebRequest) line: 113
        TestPortletAccess.testDoGetHttpServletRequestHttpServletResponse() 
line: 96
        NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not 
available
[native method]
        NativeMethodAccessorImpl.invoke(Object, Object[]) line: 39
        DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 25
        Method.invoke(Object, Object...) line: 585
        TestPortletAccess(TestCase).runTest() line: 154
        TestPortletAccess(TestCase).runBare() line: 127
        TestResult$1.protect() line: 106
        TestResult.runProtected(Test, Protectable) line: 124
        TestResult.run(TestCase) line: 109
        TestPortletAccess(TestCase).run(TestResult) line: 118
        TestSuite.runTest(Test, TestResult) line: 208
        TestSuite.run(TestResult) line: 203
        RemoteTestRunner.runTests(String[], String) line: 478
        RemoteTestRunner.run() line: 344
        RemoteTestRunner.main(String[]) line: 196
]]





-- 
Graham Klyne
For email:
http://www.ninebynine.org/#Contact

Reply via email to