You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Andriy <An...@gmail.com> on 2005/08/23 17:13:04 UTC

Problem with Tapestry Form in portlet

Hi!

I'm developing portlet application with T4.
There is a strange exception when I'm trying to add Form element on html
template: "Parameter servletPath must not be null." I'm using uPortal as a
portlet container.
Mayby there are special components for portlets?


View.java
------------------------
import org.apache.tapestry.html.BasePage;

public class View extends BasePage {
	public void onSubmit() { 
		System.out.println("Listener 'onSubmit' called.");
	}
}
-----------------------------


View.page
---------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE page-specification PUBLIC
  "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">

<page-specification class="View">
</page-specification>
--------------------------

View.html:
---------------------------
Hello!

<form jwcid="@Form" listener="ognl:listeners.onSubmit">
	<input type="submit" value="Submit" />
</form>
-----------------------------

Exception:
----------------------------
org.apache.hivemind.ApplicationRuntimeException
Parameter servletPath must not be null.
component	$View_0@1e55d39[View] 	
location	context:/WEB-INF/View.page, line 6, column 34

1	<?xml version="1.0" encoding="UTF-8"?>	
2	<!DOCTYPE page-specification PUBLIC	
3	"-//Apache Software Foundation//Tapestry Specification 4.0//EN"	
4	"http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">	
5		
6	<page-specification class="View">	
7	</page-specification>	
java.lang.NullPointerException
Parameter servletPath must not be null.
org.apache.hivemind.util.Defense.notNull(Defense.java:41)
org.apache.tapestry.engine.ServiceEncodingImpl.<init>(
 ServiceEncodingImpl.java:68)
org.apache.tapestry.engine.ServiceEncodingImpl.<init>(
 ServiceEncodingImpl.java:63)
org.apache.tapestry.services.impl.LinkFactoryImpl.createServiceEncoding(
 LinkFactoryImpl.java:134)
org.apache.tapestry.services.impl.LinkFactoryImpl.constructLink(
 LinkFactoryImpl.java:106)
$LinkFactory_105e3d65e3e.constructLink($LinkFactory_105e3d65e3e.java)
$LinkFactory_105e3d65e3d.constructLink($LinkFactory_105e3d65e3d.java)
org.apache.tapestry.engine.DirectService.getLink(DirectService.java:85)
$IEngineService_105e3d65eb9.getLink($IEngineService_105e3d65eb9.java)
org.apache.tapestry.services.impl.EngineServiceInnerProxy.getLink(
 EngineServiceInnerProxy.java:69)
org.apache.tapestry.services.impl.EngineServiceOuterProxy.getLink(
 EngineServiceOuterProxy.java:60)
org.apache.tapestry.form.Form.getLink(Form.java:350)
org.apache.tapestry.form.Form.renderComponent(Form.java:248)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:274)
org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:368)
org.apache.tapestry.portlet.PortletRendererImpl.renderPage(
 PortletRendererImpl.java:71)
$PortletRenderer_105e3d65eca.renderPage($PortletRenderer_105e3d65eca.java)
$PortletRenderer_105e3d65ec9.renderPage($PortletRenderer_105e3d65ec9.java)
org.apache.tapestry.portlet.PortletHomeService.service(
 PortletHomeService.java:83)
$IEngineService_105e3d65eb5.service($IEngineService_105e3d65eb5.java)
org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(
 EngineServiceInnerProxy.java:74)
org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
 EngineServiceOuterProxy.java:65)
org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:254)
org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
 InvokeEngineTerminator.java:60)
$WebRequestServicer_105e3d65e82.service($WebRequestServicer_105e3d65e82.java)
$WebRequestServicer_105e3d65e81.service($WebRequestServicer_105e3d65e81.java)
$WebRequestServicer_105e3d65e80.service($WebRequestServicer_105e3d65e80.java)
$WebRequestServicer_105e3d65e7f.service($WebRequestServicer_105e3d65e7f.java)
org.apache.tapestry.portlet.RenderRequestServicerToWebRequestServicerBridge.
 service(RenderRequestServicerToWebRequestServicerBridge.java:49)
$RenderRequestServicer_105e3d65e7a.service(
 $RenderRequestServicer_105e3d65e7a.java)
$RenderRequestServicer_105e3d65e79.service(
 $RenderRequestServicer_105e3d65e79.java)
$RenderRequestServicer_105e3d65e74.service(
 $RenderRequestServicer_105e3d65e74.java)
$RenderRequestServicer_105e3d65e73.service(
 $RenderRequestServicer_105e3d65e73.java)
org.apache.tapestry.portlet.ApplicationPortlet.render(
 ApplicationPortlet.java:161)
org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:205)
org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:145)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.pluto.core.PortletServlet.service(PortletServlet.java:140)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
 ApplicationFilterChain.java:237)
org.apache.catalina.core.ApplicationFilterChain.doFilter(
 ApplicationFilterChain.java:157)
org.apache.catalina.core.ApplicationDispatcher.invoke(
 ApplicationDispatcher.java:704)
org.apache.catalina.core.ApplicationDispatcher.doInclude(
 ApplicationDispatcher.java:590)
org.apache.catalina.core.ApplicationDispatcher.include(
 ApplicationDispatcher.java:510)
org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(
 PortletInvokerImpl.java:120)
org.apache.pluto.invoker.impl.PortletInvokerImpl.render(
 PortletInvokerImpl.java:73)
org.apache.pluto.PortletContainerImpl.renderPortlet(
 PortletContainerImpl.java:103)
org.jasig.portal.channels.portlet.CPortletAdapter.getMarkup(
 CPortletAdapter.java:555)
org.jasig.portal.channels.portlet.CPortletAdapter.renderCharacters(
 CPortletAdapter.java:482)
org.jasig.portal.MultithreadedCharacterChannelAdapter.renderCharacters(
 MultithreadedCharacterChannelAdapter.java:71)
org.jasig.portal.ChannelRenderer$Worker.run(ChannelRenderer.java:483)
org.jasig.portal.utils.threading.Worker.run(Worker.java:88)
-----------------------------

Thanks,
Andriy




---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: Problem with Tapestry Form in portlet

Posted by Andriy <An...@gmail.com>.
Howard Lewis Ship <hlship <at> gmail.com> writes:

> 
> I believe you have cut-n-pasted the friendly URL configuration into
> your hivemodule.xml.  Friendly URLs don't make sense in the portlet
> world (portlet URLs are always very ugly) and the friendly URL logic
> relies on the Servlet API.  Remove that from your hivemodule.xml and
> you should be good.
> 


Thank for your attention. The problem is I don't have any hivemodule.xml. 
Is it mandatory?


---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org


Re: Problem with Tapestry Form in portlet

Posted by Howard Lewis Ship <hl...@gmail.com>.
I believe you have cut-n-pasted the friendly URL configuration into
your hivemodule.xml.  Friendly URLs don't make sense in the portlet
world (portlet URLs are always very ugly) and the friendly URL logic
relies on the Servlet API.  Remove that from your hivemodule.xml and
you should be good.

On 8/23/05, Andriy <An...@gmail.com> wrote:
> Hi!
> 
> I'm developing portlet application with T4.
> There is a strange exception when I'm trying to add Form element on html
> template: "Parameter servletPath must not be null." I'm using uPortal as a
> portlet container.
> Mayby there are special components for portlets?
> 
> 
> View.java
> ------------------------
> import org.apache.tapestry.html.BasePage;
> 
> public class View extends BasePage {
>         public void onSubmit() {
>                 System.out.println("Listener 'onSubmit' called.");
>         }
> }
> -----------------------------
> 
> 
> View.page
> ---------------------------
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE page-specification PUBLIC
>   "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
>   "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
> 
> <page-specification class="View">
> </page-specification>
> --------------------------
> 
> View.html:
> ---------------------------
> Hello!
> 
> <form jwcid="@Form" listener="ognl:listeners.onSubmit">
>         <input type="submit" value="Submit" />
> </form>
> -----------------------------
> 
> Exception:
> ----------------------------
> org.apache.hivemind.ApplicationRuntimeException
> Parameter servletPath must not be null.
> component       $View_0@1e55d39[View]
> location        context:/WEB-INF/View.page, line 6, column 34
> 
> 1       <?xml version="1.0" encoding="UTF-8"?>
> 2       <!DOCTYPE page-specification PUBLIC
> 3       "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
> 4       "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd">
> 5
> 6       <page-specification class="View">
> 7       </page-specification>
> java.lang.NullPointerException
> Parameter servletPath must not be null.
> org.apache.hivemind.util.Defense.notNull(Defense.java:41)
> org.apache.tapestry.engine.ServiceEncodingImpl.<init>(
>  ServiceEncodingImpl.java:68)
> org.apache.tapestry.engine.ServiceEncodingImpl.<init>(
>  ServiceEncodingImpl.java:63)
> org.apache.tapestry.services.impl.LinkFactoryImpl.createServiceEncoding(
>  LinkFactoryImpl.java:134)
> org.apache.tapestry.services.impl.LinkFactoryImpl.constructLink(
>  LinkFactoryImpl.java:106)
> $LinkFactory_105e3d65e3e.constructLink($LinkFactory_105e3d65e3e.java)
> $LinkFactory_105e3d65e3d.constructLink($LinkFactory_105e3d65e3d.java)
> org.apache.tapestry.engine.DirectService.getLink(DirectService.java:85)
> $IEngineService_105e3d65eb9.getLink($IEngineService_105e3d65eb9.java)
> org.apache.tapestry.services.impl.EngineServiceInnerProxy.getLink(
>  EngineServiceInnerProxy.java:69)
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.getLink(
>  EngineServiceOuterProxy.java:60)
> org.apache.tapestry.form.Form.getLink(Form.java:350)
> org.apache.tapestry.form.Form.renderComponent(Form.java:248)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
> org.apache.tapestry.BaseComponent.renderComponent(BaseComponent.java:92)
> org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:612)
> org.apache.tapestry.AbstractPage.renderPage(AbstractPage.java:274)
> org.apache.tapestry.engine.RequestCycle.renderPage(RequestCycle.java:368)
> org.apache.tapestry.portlet.PortletRendererImpl.renderPage(
>  PortletRendererImpl.java:71)
> $PortletRenderer_105e3d65eca.renderPage($PortletRenderer_105e3d65eca.java)
> $PortletRenderer_105e3d65ec9.renderPage($PortletRenderer_105e3d65ec9.java)
> org.apache.tapestry.portlet.PortletHomeService.service(
>  PortletHomeService.java:83)
> $IEngineService_105e3d65eb5.service($IEngineService_105e3d65eb5.java)
> org.apache.tapestry.services.impl.EngineServiceInnerProxy.service(
>  EngineServiceInnerProxy.java:74)
> org.apache.tapestry.services.impl.EngineServiceOuterProxy.service(
>  EngineServiceOuterProxy.java:65)
> org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:254)
> org.apache.tapestry.services.impl.InvokeEngineTerminator.service(
>  InvokeEngineTerminator.java:60)
> $WebRequestServicer_105e3d65e82.service($WebRequestServicer_105e3d65e82.java)
> $WebRequestServicer_105e3d65e81.service($WebRequestServicer_105e3d65e81.java)
> $WebRequestServicer_105e3d65e80.service($WebRequestServicer_105e3d65e80.java)
> $WebRequestServicer_105e3d65e7f.service($WebRequestServicer_105e3d65e7f.java)
> org.apache.tapestry.portlet.RenderRequestServicerToWebRequestServicerBridge.
>  service(RenderRequestServicerToWebRequestServicerBridge.java:49)
> $RenderRequestServicer_105e3d65e7a.service(
>  $RenderRequestServicer_105e3d65e7a.java)
> $RenderRequestServicer_105e3d65e79.service(
>  $RenderRequestServicer_105e3d65e79.java)
> $RenderRequestServicer_105e3d65e74.service(
>  $RenderRequestServicer_105e3d65e74.java)
> $RenderRequestServicer_105e3d65e73.service(
>  $RenderRequestServicer_105e3d65e73.java)
> org.apache.tapestry.portlet.ApplicationPortlet.render(
>  ApplicationPortlet.java:161)
> org.apache.pluto.core.PortletServlet.dispatch(PortletServlet.java:205)
> org.apache.pluto.core.PortletServlet.doGet(PortletServlet.java:145)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> org.apache.pluto.core.PortletServlet.service(PortletServlet.java:140)
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
>  ApplicationFilterChain.java:237)
> org.apache.catalina.core.ApplicationFilterChain.doFilter(
>  ApplicationFilterChain.java:157)
> org.apache.catalina.core.ApplicationDispatcher.invoke(
>  ApplicationDispatcher.java:704)
> org.apache.catalina.core.ApplicationDispatcher.doInclude(
>  ApplicationDispatcher.java:590)
> org.apache.catalina.core.ApplicationDispatcher.include(
>  ApplicationDispatcher.java:510)
> org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(
>  PortletInvokerImpl.java:120)
> org.apache.pluto.invoker.impl.PortletInvokerImpl.render(
>  PortletInvokerImpl.java:73)
> org.apache.pluto.PortletContainerImpl.renderPortlet(
>  PortletContainerImpl.java:103)
> org.jasig.portal.channels.portlet.CPortletAdapter.getMarkup(
>  CPortletAdapter.java:555)
> org.jasig.portal.channels.portlet.CPortletAdapter.renderCharacters(
>  CPortletAdapter.java:482)
> org.jasig.portal.MultithreadedCharacterChannelAdapter.renderCharacters(
>  MultithreadedCharacterChannelAdapter.java:71)
> org.jasig.portal.ChannelRenderer$Worker.run(ChannelRenderer.java:483)
> org.jasig.portal.utils.threading.Worker.run(Worker.java:88)
> -----------------------------
> 
> Thanks,
> Andriy
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
> 
> 


-- 
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind

Professional Tapestry training, mentoring, support
and project work.  http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org