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
]]