I am trying to get a simple struts/tiles application working in jetspeed 2 using struts bridge. I would greatly appreciate any insight why I keep getting this error. Some of my key files:
portlet.xml --------------- <?xml version="1.0" encoding="UTF-8"?> <portlet-app id="singles" xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"> <portlet id="strutsexample"> <portlet-name>strutsexample</portlet-name> <display-name>struts tiles example</display-name> <portlet-class>org.apache.portals.bridges.struts.StrutsPortlet</portlet-class> <init-param> <name>ServletContextProvider</name> <value>org.apache.jetspeed.portlet.ServletContextProviderImpl</value> </init-param> <init-param> <name>ViewPage</name> <value>/do/welcome</value> </init-param> <expiration-cache>-1</expiration-cache> <supports> <mime-type>text/html</mime-type> <portlet-mode>VIEW</portlet-mode> <portlet-mode>HELP</portlet-mode> </supports> <portlet-info> <title>struts</title> <keywords>struts</keywords> </portlet-info> </portlet> </portlet-app> struts-config.xml ----------------------- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd"> <struts-config> <data-sources /> <form-beans /> <global-exceptions /> <global-forwards > <forward name="welcome" path="/do/welcome" redirect="true" /> </global-forwards> <action-mappings > <action path="/welcome" type="de.laliluna.tutorials.library.struts.action.WelcomeAction"> <forward name="showWelcome" path="page.welcome" /> </action> <action path="/bookList" type="de.laliluna.tutorials.library.struts.action.BookListAction"> <forward name="showBookList" path="page.booklist" /> </action> <action path="/navigation" type="de.laliluna.tutorials.library.struts.action.NavigationAction"> <forward name="showNavigation" path="/jsp/navigation.jsp" /> </action> </action-mappings> <!-- <controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" bufferSize="4096" debug="0" /> --> <controller pagePattern="$M$P" inputForward="false" processorClass="org.apache.portals.bridges.struts.PortletTilesRequestProcessor"/> <message-resources parameter="de.laliluna.tutorials.library.struts.ApplicationResources" /> <plug-in className="org.apache.struts.tiles.TilesPlugin"> <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" /> <set-property property="moduleAware" value="true" /> <set-property property="definitions-parser-validate" value="true" /> </plug-in> </struts-config> struts-portlet-config.xml --------------------------------- <?xml version="1.0" encoding="UTF-8"?> <config> <render-context> <attribute name="errors"/> <attribute name="message"/> </render-context> <portlet-url-type> <action path="/do/welcome"/> <action path="/do/bookList"/> <action path="/do/navigation"/> <resource path="/images/"/> </portlet-url-type> </config> tiles-defs.xml ----------------- <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions> <!-- Base Tiles Definition --> <definition name="base.definition" path="/jsp/siteLayout.jsp"> <put name="header" value="/jsp/header.jsp" /> <put name="navigation" value="/do/navigation" /> <put name="footer" value="/jsp/footer.jsp" /> </definition> <!-- Tiles Definition of welcome page --> <definition name="page.welcome" extends="base.definition"> <put name="title" value="Welcome page" /> <put name="body" value="/jsp/index.jsp" /> </definition> <!-- Tiles Definition of BookList --> <definition name="page.booklist" extends="base.definition"> <put name="title" value="Book list page" /> <put name="body" value="/jsp/bookList.jsp" /> </definition> </tiles-definitions> web.xml ------------ <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>action</servlet-name> <servlet-class>org.apache.portals.bridges.struts.PortletServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/struts-config.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <init-param> <param-name>detail</param-name> <param-value>2</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <servlet-name>JetspeedContainer</servlet-name> <display-name>Jetspeed Container</display-name> <description>MVC Servlet for Jetspeed Portlet Applications</description> <servlet-class>org.apache.jetspeed.container.JetspeedContainerServlet</servlet-class> <init-param> <param-name>contextName</param-name> <param-value>strutsexample</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>JetspeedContainer</servlet-name> <url-pattern>/container/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>/do/*</url-pattern> </servlet-mapping> <session-config> <session-timeout>500</session-timeout> </session-config> <!-- Default files and Error pages for standard HTTP error codes --> <env-entry> <env-entry-name>maxListLength</env-entry-name> <env-entry-value>100</env-entry-value> <env-entry-type>java.lang.Integer</env-entry-type> </env-entry> </web-app> strutsexample.psml -------------------------- <?xml version="1.0" encoding="UTF-8"?> <page id="strutsexample"> <defaults skin="orange" layout-decorator="tigris" portlet-decorator="tigris" /> <title>The Struts/Tiles Example Porlet</title> <metadata name="title" xml:lang="en">The Struts/Tiles Example Portlet</metadata> <fragment id="strutsexample" type="layout" name="jetspeed-layouts::VelocityOneColumn"> <fragment id="singles-1" type="portlet" name="strutsexample::strutsexample"> <property layout="OneColumn" name="row" value="0" /> <property layout="OneColumn" name="column" value="0" /> </fragment> </fragment> <security-constraints> <security-constraints-ref>public-view</security-constraints-ref> </security-constraints> </page> navigation.jsp ------------------ <%@ page language="java"%> <%@ taglib uri="http://portals.apache.org/bridges/struts/tags-portlet-html" prefix="html" %> Navigation page <br /> <html:link action="welcome"> Goto welcome page </html:link> <br /> <html:link action="bookList"> Goto book list page </html:link> <br /> <br /> When I click on any <html:link> on the navigation page, I got this error. It seems the componet context isn't set into the pageContext. Error - tag.getAsString : component context is not defined. Check tag syntax org.apache.struts.taglib.tiles.GetAttributeTag.doEndTag(GetAttributeTag.java:155) org.apache.jsp.jsp.siteLayout_jsp._jspx_meth_tiles_getAsString_0(org.apache.jsp.jsp.siteLayout_jsp:176) org.apache.jsp.jsp.siteLayout_jsp._jspx_meth_html_html_0(org.apache.jsp.jsp.siteLayout_jsp:108) org.apache.jsp.jsp.siteLayout_jsp._jspService(org.apache.jsp.jsp.siteLayout_jsp:73) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) org.apache.portals.bridges.struts.PortletServletRequestDispatcher.invoke(PortletServletRequestDispatcher.java:128) org.apache.portals.bridges.struts.PortletServletRequestDispatcher.include(PortletServletRequestDispatcher.java:146) org.apache.portals.bridges.struts.PortletServlet.performActionRenderRequest(PortletServlet.java:179) org.apache.portals.bridges.struts.PortletTilesRequestProcessor.processRoles(PortletTilesRequestProcessor.java:57) org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:197) org.apache.portals.bridges.struts.PortletTilesRequestProcessor.process(PortletTilesRequestProcessor.java:50) org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) org.apache.portals.bridges.struts.StrutsPortlet.processRequest(StrutsPortlet.java:375) org.apache.portals.bridges.struts.StrutsPortlet.doView(StrutsPortlet.java:274) javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247) javax.portlet.GenericPortlet.render(GenericPortlet.java:175) org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortletInstance.java:102) org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:230) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574) org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499) org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:213) org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:125) org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:119) org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:120) org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJobImpl.java:120) org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:110) org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:199) org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:182) org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:106) org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:48) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:132) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationValve.java:100) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:179) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:143) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:148) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:168) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:117) java.security.AccessController.doPrivileged(Native Method) javax.security.auth.Subject.doAsPrivileged(Subject.java:437) org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:111) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:55) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:128) org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203) org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:185) org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:231) org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:226) javax.servlet.http.HttpServlet.service(HttpServlet.java:689) javax.servlet.http.HttpServlet.service(HttpServlet.java:802) org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) java.lang.Thread.run(Thread.java:534) -- View this message in context: http://www.nabble.com/Error---tag.getAsString-%3A-component-context-is-not-defined.-Check-tag-sy-tf2269365.html#a6298778 Sent from the Jetspeed - User forum at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
