hi Raphael,

You way of providing a <implementation service-id=""> in my own
hivemodule.xml works, thanks very much.

I found the cause of Hivemind+Spring problem. I actually have two
hivemodule.xml files:
-- WEB-INF/hivemodule.xml
-- WEB-INF/{portlet.name}/hivemodule.xml

I originally put the DefaultSpringBeanFactoryHolder definition in the {
portlet.name}/hivemodule.xml, that would cause a NullPointerException on
beanFactory. However, when I put the definition in WEB-INF/hivemodule.xml,
it is working fine.

Another problem I have now is I don't know how to include the DOJO libraries
into my page. I am using:

<script jwcid="@Any" type="text/javascript" src="js/dojo/dojo.js"></script>

I can see the "<script src="js/dojo/dojo.js"
type="text/javascript"></script>" in the body of the generated HTML. They
normally appear near the <head> part of the HTML. Is this a problem?
Furthermore, I found the AjaxDirectLink couldn't catch the
"dojoRequest=true" parameter, which I believe is appended to the request by
some client side JavaScript. Tapestry web side suggests using <Script>
component to include the script files, how to do it?

Regards,
Liu Yan


----- Original Message ----- From: "Raphaël Jean" <
[EMAIL PROTECTED]>
To: "Tapestry users" <[email protected]>
Sent: Tuesday, February 21, 2006 3:43 AM
Subject: RE: Tacos:AjaxDirectLink not supported in Portlet application?


Liu Yan,

To easily override the Tacos AjaxDirect service, simply add the following to
your hivemodule.xml:

<implementation service-id="tacos.AjaxDirect">
    Implementation of IEngineService that handles various forms of
    ajax requests. Should eventually replace IPartialService.
    <invoke-factory>
        <construct class="net.sf.tacos.ajax.impl.AjaxDirectServiceImpl"
            autowire-services="false">
            <set-object property="responseRenderer"
                value="infrastructure:responseRenderer"/>
            <set-object property="request" value="infrastructure:request"/>
            <set-object property="linkFactory"
                value="service:tapestry.url.LinkFactory"/>
            <set-object property="webResponse"
                value="infrastructure:response"/>
            <set-object property="ajaxRequest"
                value="service:tacos.AjaxWebRequest" />
            <set-object property="delegateFactory"
             value="service:tacos.ajax.ResponseDelegateFactory" />
            <set-object property="requestCycle"
             value="infrastructure:requestCycle"/>
            <set-object property="exceptionPresenter"
             value="service:tacos.AjaxExceptionPresenter"/>
            <set-object property="staleSessionExceptionPresenter"
             value="service:tacos.AjaxStaleSessionExceptionPresenter"/>
        </construct>
    </invoke-factory>
    <!-- <interceptor service-id="hivemind.LoggingInterceptor"/>  -->
</implementation>


I can't really help you on the Spring integration problem since I don't use
Hivemind to access my Spring application context. Sorry.

Raphael Jean
EntropySoft

> -----Original Message-----
> From: Liu Yan [mailto:[EMAIL PROTECTED]
> Sent: lundi 20 février 2006 16:11
> To: Tapestry users
> Subject: Re: Tacos:AjaxDirectLink not supported in Portlet application?
>
> hi Raphael,
>
> Thanks for your solution, it works for me too. But my way of doing that is
> directly modify the META-INF/hivemodule.xml file and re-package the Tacos
> library. I believe there should be some better way to do this, such as
> overriding the AjaxDirect service point in our own application's
> hivemodule.xml file. Am I right and how to do it?
>
> There are other problems after I applied your solution. I am using
> Hivemind + Spring, the approach is from the Tapestry wiki, it works fine
> in servlet apps and some part of the portlet. However, I got
> NullPointerException on the beanFactory of
> hivemind.lib.DefaultSpringBeanFactoryHolder. I need to add the following
> definition in the Tacos hivemodule.xml as well to eliminate this problem.
> But I don't understand why it hehaves like this way.
>
> Regards,
> Liu Yan
>
>
> ----- Original Message -----
> From: "Raphaël Jean" <[EMAIL PROTECTED]>
> To: "Tapestry users" <[email protected]>
> Sent: Sunday, February 19, 2006 9:27 PM
> Subject: RE: Tacos:AjaxDirectLink not supported in Portlet application?
>
>
> Liu,
>
> Have a look at this thread for information about this problem:
> http://thread.gmane.org/gmane.comp.java.tapestry.user/32247
>
> Raphael Jean
> EntropySoft
>
> > -----Original Message-----
> > From: Liu Yan [mailto:[EMAIL PROTECTED]
> > Sent: samedi 18 février 2006 11:10
> > To: [email protected]
> > Subject: Tacos:AjaxDirectLink not supported in Portlet application?
> >
> > hi,
> >
> > I am in the process of porting a web app written in T4+Tacos into a
> > portlet
> > app. The current problem is in an AjaxDirectLink used in a Tree
> component.
> > The exception is:
> >
> > Method getAbsoluteURL() is not supported for portlet requests.
> >
> > The implementation of PortletLink.getAbsoluteURL() simply throws out a
> > UnsupportedOperationException. What can we do to get around this
> problem?
> >
> > Some exception stacks are included:
> >
> >
> >
> org.apache.tapestry.portlet.PortletLink.getAbsoluteURL(PortletLink.java:13
> > 1)
> >
> > net.sf.tacos.ajax.components.AjaxDirectLink.getLinkArguments(
> > AjaxDirectLink.java:137)
> > net.sf.tacos.ajax.components.AjaxDirectLink.getLinkString(
> > AjaxDirectLink.java:109)
> > net.sf.tacos.ajax.components.AjaxDirectLink.renderAdditionalAttributes(
> > AjaxDirectLink.java:93)
> > org.apache.tapestry.link.DefaultLinkRenderer.renderLink(
> > DefaultLinkRenderer.java:87)
> > org.apache.tapestry.link.AbstractLinkComponent.renderComponent(
> > AbstractLinkComponent.java:95)
> > org.apache.tapestry.AbstractComponent.render(AbstractComponent.java:617)
> >
> org.apache.tapestry.AbstractComponent.renderBody(AbstractComponent.java:43
> > 4)
> >
> > org.apache.tapestry.components.IfBean.renderComponent(IfBean.java:86)
> > ...
> > ...
> > Regards,
> > Liu Yan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to