You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-dev@portals.apache.org by Martin Scott Nicklous <Sc...@de.ibm.com> on 2014/12/03 16:37:33 UTC

PortletHub should be functionally complete

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


Re: [jsr362-experts:] Re: PortletHub should be functionally complete

Posted by David S Taylor <da...@bluesunrise.com>.
Hi Neil,

After modifying the pom.xml and rebuilding, deploying, all the portlets now
display without error. Modifications to pom.xml include commenting out
provided scope for apache taglibs, and adding a dependency on JSTL 1.2 :


<*dependency*>    <*groupId*>javax.servlet</*groupId*>
<*artifactId*>jstl</*artifactId*>
<*version*>1.2</*version*></*dependency*><*dependency*>
<*groupId*>org.apache.taglibs</*groupId*>
<*artifactId*>taglibs-standard-spec</*artifactId*>
*<!--<scope>provided</scope>-->
*</*dependency*>


Im not really sure what Im supposed to see here. I thought the demo would
allow you to change colors are send text messages, but none of that seems
to be working for me. I am seeing messages in the Chrome console though...


--
David S Taylor
707 529-9194
david@bluesunrise.com


On Wed, Dec 3, 2014 at 3:31 PM, Neil Griffin <ne...@portletfaces.org>
wrote:

> 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 <da...@bluesunrise.com> 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 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 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
> david@bluesunrise.com
>
>
> On Wed, Dec 3, 2014 at 7:37 AM, Martin Scott Nicklous <
> Scott.Nicklous@de.ibm.com> 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
>>
>>
>
>

Re: [jsr362-experts:] PortletHub should be functionally complete

Posted by Neil Griffin <ne...@portletfaces.org>.
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 <da...@bluesunrise.com> 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
> david@bluesunrise.com <ma...@bluesunrise.com>
> 
> 
> On Wed, Dec 3, 2014 at 7:37 AM, Martin Scott Nicklous <Scott.Nicklous@de.ibm.com <ma...@de.ibm.com>> 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
> 
> 


Re: [jsr362-experts:] PortletHub should be functionally complete

Posted by David S Taylor <da...@bluesunrise.com>.
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 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 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
david@bluesunrise.com


On Wed, Dec 3, 2014 at 7:37 AM, Martin Scott Nicklous <
Scott.Nicklous@de.ibm.com> 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
>
>