Hi David,

Just a suggestion, but you might want to start with a new/clean Tomcat 7.0.21 
that does not include Pluto.

Not sure why, but that's what I had to do last week in order to get it to work. 
I think I also had to add the following to tomcat-users.xml:

<user name="pluto" password="pluto" roles="pluto,manager"/>

Neil

> On Dec 3, 2014, at 6:15 PM, David S Taylor <[email protected]> wrote:
> 
> Scott,
> 
> I tried it out, but got errors, see below. Here are the steps I used to 
> deploy ... please let me know if I am missing something or doing something 
> wrong
> 
> 0. Pull latest on PortletHub branch
> 
> > git brach
> *PortletHub
> master
> 
> > git pull origin
> 
> 1. Build Pluto from root directory
> 
> mvn clean install
> 
> 2. Build Distribution
> 
> ant -f dist-build.xml
> 
> 3. start Pluto
> 
> cd target/dist/pluto-2.1.0-SNAPSHOT/bin
> chmod +x *.sh
> ./startup.sh
> 
> 4. deploy the Portlet Hub 
> 
> cp PortletHubDemo/target/PortletHubDemo.war 
> target/dist/pluto-2.1.0-SNAPSHOT/webapps/
> 5. Login to Pluto as pluto/pluto
> 
> 6. Create a new page called Hub from Pluto Admin
> 
> 7. Add any Hub portlet to the Hub page. I tried a few, they all get this 
> error when navigating to the Hub page:
> 
> 
> 
> Error rendering portlet MessageBoxPortlet.
> javax.portlet.PortletException: org.apache.jasper.JasperException: The 
> absolute uri: http://java.sun.com/jsp/jstl/core 
> <http://java.sun.com/jsp/jstl/core> cannot be resolved in either web.xml or 
> the jar files deployed with this application
>       at 
> org.apache.pluto.container.impl.PortletRequestDispatcherImpl.doDispatch(PortletRequestDispatcherImpl.java:187)
>       at 
> org.apache.pluto.container.impl.PortletRequestDispatcherImpl.include(PortletRequestDispatcherImpl.java:227)
>       at basic.portlet.MessageBoxPortlet.doView(MessageBoxPortlet.java:63)
>       at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:348)
>       at javax.portlet.GenericPortlet.render(GenericPortlet.java:253)
>       at 
> org.apache.pluto.driver.services.container.FilterChainImpl.doFilter(FilterChainImpl.java:163)
>       at 
> org.apache.pluto.driver.services.container.FilterChainImpl.processFilter(FilterChainImpl.java:91)
>       at 
> org.apache.pluto.driver.services.container.FilterManagerImpl.processFilter(FilterManagerImpl.java:105)
>       at 
> org.apache.pluto.container.driver.PortletServlet.dispatch(PortletServlet.java:340)
>       at 
> org.apache.pluto.container.driver.PortletServlet.doGet(PortletServlet.java:261)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
>       at 
> org.apache.pluto.driver.container.DefaultPortletInvokerService.invoke(DefaultPortletInvokerService.java:233)
>       at 
> org.apache.pluto.driver.container.DefaultPortletInvokerService.render(DefaultPortletInvokerService.java:117)
>       at 
> org.apache.pluto.container.impl.PortletContainerImpl.doRender(PortletContainerImpl.java:157)
>       at 
> org.apache.pluto.driver.tags.PortletTag.doStartTag(PortletTag.java:165)
>       at 
> org.apache.jsp.WEB_002dINF.themes.portlet_002dskin_jsp._jspService(portlet_002dskin_jsp.java:95)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
>       at 
> org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:927)
>       at 
> org.apache.jsp.WEB_002dINF.themes.pluto_002ddefault_002dtheme_jsp._jspx_meth_c_005fforEach_005f1(pluto_002ddefault_002dtheme_jsp.java:617)
>       at 
> org.apache.jsp.WEB_002dINF.themes.pluto_002ddefault_002dtheme_jsp._jspx_meth_c_005fotherwise_005f0(pluto_002ddefault_002dtheme_jsp.java:561)
>       at 
> org.apache.jsp.WEB_002dINF.themes.pluto_002ddefault_002dtheme_jsp._jspx_meth_c_005fchoose_005f0(pluto_002ddefault_002dtheme_jsp.java:422)
>       at 
> org.apache.jsp.WEB_002dINF.themes.pluto_002ddefault_002dtheme_jsp._jspService(pluto_002ddefault_002dtheme_jsp.java:217)
>       at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
>       at 
> org.apache.pluto.driver.PortalDriverServlet.doGet(PortalDriverServlet.java:255)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
>       at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
>       at 
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
>       at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
>       at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
>       at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
>       at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
>       at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
>       at 
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:269)
>       at 
> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
>       at 
> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: org.apache.jasper.JasperException: The absolute uri: 
> http://java.sun.com/jsp/jstl/core <http://java.sun.com/jsp/jstl/core> cannot 
> be resolved in either web.xml or the jar files deployed with this application
>       at 
> org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:56)
>       at 
> org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:410)
>       at 
> org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:117)
>       at 
> org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:311)
>       at 
> org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:152)
>       at 
> org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:410)
>       at org.apache.jasper.compiler.Parser.parseDirective(Parser.java:475)
>       at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1425)
>       at org.apache.jasper.compiler.Parser.parse(Parser.java:138)
>       at 
> org.apache.jasper.compiler.ParserController.doParse(ParserController.java:242)
>       at 
> org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
>       at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
>       at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)
>       at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)
>       at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)
>       at 
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:644)
>       at 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
>       at 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
>       at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
>       at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:593)
>       at 
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:530)
>       at 
> org.apache.pluto.container.impl.PortletRequestDispatcherImpl.doDispatch(PortletRequestDispatcherImpl.java:174)
>       ... 68 more
> 
> 
> --
> David S Taylor
> 707 529-9194
> [email protected] <mailto:[email protected]>
> 
> 
> On Wed, Dec 3, 2014 at 7:37 AM, Martin Scott Nicklous 
> <[email protected] <mailto:[email protected]>> wrote:
> 
> Hi,
> 
> I pushed several commits to the PortletHub branch of the Pluto repository,
> completing the Portlet Hub functionality (I think). There are quite a few
> changes, one of which ended up going deeper than I had really expected,
> which is why it took a little longer than planned.
> 
> Changes:
> 
> 1) Added accessor helper functions to the PortletParameters and
> PortletState objects
> 
> 2) Modified portlet JavaScript code to use the new accessors
> 
> 3) Used jslint to improve the portletHubImpl.js code
> 
> 4) Completed the portlet hub action functionality by allowing the Portlet
> Client JavaScript code to provide a form element to the action() method
> rather than having to set the action parameters on the URL.
> 
> In order to keep the client-side implementation easy, I implemented this
> through use of the XHR2 FormData object.
> 
> It turns out that XHR2 sends FormData as "multipart/form-data" rather than
> as "application/x-www-form-urlencoded", so multipart form support was
> needed on the server side as well. In order to avoid writing my own parser
> for the multipart form data, I moved the Pluto servlet dependency to v3.0.
> Some JSPs weren't working for non-obvious reasons, so I moved the JSP and
> EL dependencies to v2.2 and moved to the latest standard tag library as
> well. That ended up solving the problem.
> 
> Now everything seems to work. We've got the PortletHub functionality
> complete AND we have moved to the Java EE 6 level of servlet api, JSP api,
> EL api, and JSTL support.
> 
> It would be good if someone could try this out and verify that it doesn't
> just work only on my machine. Since there are a number of changes, you will
> have to pull the latest level from the PortletHub branch, recompile, and
> completely redeploy Pluto and the demo portlets to see the changes.
> 
> regards,
> Scott
> 
> 

Reply via email to