Hi Martin,

I had seen the configs in the struts-showcase, and used all of them as-is ;
just added a javascript fn. to invoke DWR and was getting the NPE. So, looks
like there's something broken in the default distro. I'll try your
suggestion of using :

*

public* ActionProxy createActionProxy(String namespace, String actionName,
String methodName, Map<String, Object> extraContext, *boolean*executeResult,
*boolean* cleanupContext);
instead of :


*public* ActionProxy createActionProxy(ActionInvocation actionInvocation,
String namespace, String actionName, String methodName,*boolean*executeResult,
*boolean* cleanupContext);

Hope this is what you meant?

Thanks,
Joseph






On Fri, May 15, 2009 at 3:40 AM, Martin Gainty <mgai...@hotmail.com> wrote:

>
> the DWR configuration you will need is located at
> struts-showcase\WEB-INF\dwr.xml
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!-- START SNIPPET: dwr -->
> <!DOCTYPE dwr PUBLIC
>    "-//GetAhead Limited//DTD Direct Web Remoting 1.0//EN"
>    "http://www.getahead.ltd.uk/dwr/dwr10.dtd";>
> <dwr>
>    <allow>
>        <create creator="new" javascript="validator">
>            <param name="class"
> value="org.apache.struts2.validators.DWRValidator"/>
>        </create>
>        <convert converter="bean"
> match="com.opensymphony.xwork2.ValidationAwareSupport"/>
>    </allow>
>    <signatures>
>        <![CDATA[
>        import java.util.Map;
>        import org.apache.struts2.validators.DWRValidator;
>
>        DWRValidator.doPost(String, String, Map<String, String>);
>        ]]>
>    </signatures>
> </dwr>
> <!-- END SNIPPET: dwr -->
>
> where the servlet would be defined in WEB-INF/web.xml configuration
>   <servlet>
>        <servlet-name>dwr</servlet-name>
>        <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class>
>        <init-param>
>            <param-name>debug</param-name>
>            <param-value>true</param-value>
>        </init-param>
>    </servlet>
>    <servlet-mapping>
>        <servlet-name>dwr</servlet-name>
>        <url-pattern>/dwr/*</url-pattern>
>    </servlet-mapping>
>
> the config files struts.xml or struts-default.xml would contain the bean
> definitions for OgnlValueStackFactory e.g.
>
> <bean type="com.opensymphony.xwork2.util.ValueStackFactory" name="struts"
> class="com.opensymphony.xwork2.ognl.OgnlValueStackFactory" />
>
> <bean type="com.opensymphony.xwork2.ActionProxyFactory" name="xwork"
> class="com.opensymphony.xwork2.DefaultActionProxyFactory"/>
>
> your webapp's
> execution flow is governed by interceptors you insert into (defaultStack)
> interceptor stack declaration as seen here
>            <interceptor-stack name="defaultStack">
>                <interceptor-ref name="exception"/>
>                <interceptor-ref name="alias"/>
>                <interceptor-ref name="servletConfig"/>
>                <interceptor-ref name="i18n"/>
>                <interceptor-ref name="prepare"/>
>                <interceptor-ref name="chain"/>
>                <interceptor-ref name="debugging"/>
>                <interceptor-ref name="profiling"/>
>                <interceptor-ref name="scopedModelDriven"/>
>                <interceptor-ref name="modelDriven"/>
>                <interceptor-ref name="fileUpload"/>
>                <interceptor-ref name="checkbox"/>
>                <interceptor-ref name="staticParams"/>
>                <interceptor-ref name="actionMappingParams"/>
>                <interceptor-ref name="params">
>                  <param name="excludeParams">dojo\..*,^struts\..*</param>
>                </interceptor-ref>
>                <interceptor-ref name="conversionError"/>
>                <interceptor-ref name="validation">
>                    <param
> name="excludeMethods">input,back,cancel,browse</param>
>                </interceptor-ref>
>                <interceptor-ref name="workflow">
>                    <param
> name="excludeMethods">input,back,cancel,browse</param>
>                </interceptor-ref>
>            </interceptor-stack>
>
> The ActionProxyFactory is used to create ActionProxies to be executed. It
> is the entry point to XWork that is used
>  by a dispatcher to create an ActionProxy to execute for a particular
> namespace and action name.
>
> where xwork 1.2.3 specifies createActionProxy with 5 parameters
> createActionProxy(String namespace,
>                  String actionName,
>                  Map extraContext,
>                  boolean executeResult,
>                  boolean cleanupContext)
>
>
> Creates an ActionProxy for the given namespace and action name by looking
> up the configuration.
>
> instead of
>  ActionProxy proxy = actionProxyFactory.createActionProxy(inv, namespace,
> > mapping.getName(), mapping.getMethod(), *true*, *true*);
>
> switch the 1st arg of inv (assuming that contains action) and 2nd arg of
> namespace(assuming that contains namespace) and drop getMethod() unless of
> course that has the desired extraContext
> then proxy.execute()
> will set the ActionContext from the ActionInvocation into the desired
> ActionContext
>
> documentation available at
>
> http://struts.apache.org/2.1.6/struts2-core/apidocs/com/opensymphony/xwork2/ActionProxy.html
>
> hope that answers your question
> Martin
> ______________________________________________
> Disclaimer and Confidentiality/Verzicht und Vertraulichkeitanmerkung/Note
> de déni et de confidentialité
> This message is confidential. If you should not be the intended receiver,
> then we ask politely to report. Each unauthorized forwarding or
> manufacturing of a copy is inadmissible. This message serves only for the
> exchange of information and has no legal binding effect. Due to the easy
> manipulation of emails we cannot take responsibility over the the contents.
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte
> Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht
> dient lediglich dem Austausch von Informationen und entfaltet keine
> rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
> E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le
> destinataire prévu, nous te demandons avec bonté que pour satisfaire
> informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie
> de ceci est interdite. Ce message sert à l'information seulement et n'aura
> pas n'importe quel effet légalement obligatoire. Étant donné que les email
> peuvent facilement être sujets à la manipulation, nous ne pouvons accepter
> aucune responsabilité pour le contenu fourni.
>
>
>
>
> > Date: Fri, 15 May 2009 01:50:27 +0530
> > Subject: Re: DWRValidator not working in Struts 2.1.6
> > From: strutstwou...@gmail.com
> > To: user@struts.apache.org
>  >
> > martin,
> >
> > i had seen the StrutsPrepareFilter API and as it says "Prepares the
> request
> > for execution by a later StrutsExecuteFilter filter instance. " . I've
> both
> > the StrutsPrepare and Execute filters configured plus the DWR servlet.
> >
> > You were mentioning a working example of DWRValidator in the showcase,
> but i
> > couldn't find it.
> >
> > My understanding is that when a DWR request is sent - it goes thru
> > StrutsPrepareFilter ,  StrutsExecuteFilter (which executes the Action
> > preceded by interceptor stack) , finally DWRServlet. So, by the time the
> > request reaches DWRServlet, it would have done the validations and the
> > errors would be populated.
> >
> > The point i'm confused is that in DWRValidator doPost method, there's
> again
> > a call to execute the Action like :
> >
> > ActionProxy proxy = actionProxyFactory.createActionProxy(inv, namespace,
> > mapping.getName(), mapping.getMethod(), *true*, *true*);
> > proxy.execute();
> > and this fails for some reason since valuestackfactory is null.
> >
> > Thanks,
> > Joseph
> >
> > On Fri, May 15, 2009 at 1:22 AM, Martin Gainty <mgai...@hotmail.com>
> wrote:
> >
> > >
> > > StrutsPrepareFilter documentation is available at
> > >
> > >
> http://struts.apache.org/2.1.6/struts2-core/apidocs/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.html
> > >
> > > there is a brand new feature that musachy put in svn on monday to
> > > specifically work-around action execute
> > > i would ping him to see if this made was built into latest distro
> > >
> > > Thanks,
> > > Martin Gainty
> > > ______________________________________________
> > > Disclaimer and Confidentiality/Verzicht und
> Vertraulichkeitanmerkung/Note
> > > de déni et de confidentialité
> > > This message is confidential. If you should not be the intended
> receiver,
> > > then we ask politely to report. Each unauthorized forwarding or
> > > manufacturing of a copy is inadmissible. This message serves only for
> the
> > > exchange of information and has no legal binding effect. Due to the
> easy
> > > manipulation of emails we cannot take responsibility over the the
> contents.
> > > Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> > > Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede
> unbefugte
> > > Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese
> Nachricht
> > > dient lediglich dem Austausch von Informationen und entfaltet keine
> > > rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von
> > > E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
> > > Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas
> le
> > > destinataire prévu, nous te demandons avec bonté que pour satisfaire
> > > informez l'expéditeur. N'importe quelle diffusion non autorisée ou la
> copie
> > > de ceci est interdite. Ce message sert à l'information seulement et
> n'aura
> > > pas n'importe quel effet légalement obligatoire. Étant donné que les
> email
> > > peuvent facilement être sujets à la manipulation, nous ne pouvons
> accepter
> > > aucune responsabilité pour le contenu fourni.
> > >
> > >
> > >
> > >
> > > > Date: Thu, 14 May 2009 23:55:34 +0530
> > > > Subject: Re: DWRValidator not working in Struts 2.1.6
> > > > From: strutstwou...@gmail.com
> > > > To: mgai...@hotmail.com; user@struts.apache.org
> > >  >
> > > > Just wanted to make sure my email reached the full users' list. I
> > > > still havent been able to make any progress on this. Has anyone got
> > > > the DWRValidator working in Struts 2.1?
> > > >
> > > > On 4/24/09, j alex <strutstwou...@gmail.com> wrote:
> > > > > Martin,
> > > > >
> > > > > I want DWRServlet to handle only the Action validations, not Action
> > > > > execution. I'm invoking the validator.doPost() when user tabs off a
> > > field
> > > > > in
> > > > > order to validate the entered data.
> > > > >
> > > > > I couldn't find the example you are referring to in
> > > > > http://struts.apache.org/2.1.6/docs/tutorials.html . Could you
> please
> > > tell
> > > > > me a specific link ?
> > > > >
> > > > > Thanks
> > > > > s2user
> > > > >
> > > > >
> > > > >
> > > > > On Fri, Apr 24, 2009 at 7:50 PM, Martin Gainty <
> mgai...@hotmail.com>
> > > wrote:
> > > > >
> > > > >>  who handles the action execution DWRServlet or
> > > > >> StrutsPrepareAndExecuteFilter?
> > > > >>
> > > > >> If you want to use DWRServlet to handle action execution you are
> > > better
> > > > >> off
> > > > >> just using StrutsPrepareFilter to prepare the request as in this
> > > example
> > > > >>
> > > > >>
> > > > >>
> > >
> http://struts.apache.org/2.1.6/struts2-core/apidocs/org/apache/struts2/dispatcher/ng/filter/StrutsPrepareFilter.html
> > > > >>
> > > > >> web.xml entry
> > > > >>     <filter>
> > > > >>         <filter-name>struts-prepare</filter-name>
> > > > >>
> > > > >>
> > >
> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class>
> > > > >>         <init-param>
> > > > >>             <param-name>actionPackages</param-name>
> > > > >>
> > > <param-value>org.apache.struts2.showcase.person</param-value>
> > > > >>         </init-param>
> > > > >>     </filter>
> > > > >>
> > > > >> There is a very good example of StrutsPrepareFilter functionality
> > > working
> > > > >> in combination with DWRServlet in struts2-showcase tutorial
> located at
> > > > >>
> > > > >>
> > > > >>
> > > > >
> > > >
> > >  >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> > > > For additional commands, e-mail: user-h...@struts.apache.org
> > > >
> > >
> > > _________________________________________________________________
> > > Hotmail® has a new way to see what's up with your friends.
> > >
> > >
> http://windowslive.com/Tutorial/Hotmail/WhatsNew?ocid=TXT_TAGLM_WL_HM_Tutorial_WhatsNew1_052009
> > >
>
> _________________________________________________________________
> Insert movie times and more without leaving Hotmail®.
>
> http://windowslive.com/Tutorial/Hotmail/QuickAdd?ocid=TXT_TAGLM_WL_HM_Tutorial_QuickAdd1_052009
>

Reply via email to