Sure!

I have created an user at jira, but I think I dont have permissions to open a 
new issue. Or am I in the wrong place? :)


Felipe Lorenz

Em 27/06/2013, às 03:11, Lukasz Lenart escreveu:

> Thanks Felipe!
> 
> I think we must extend RestActionProxyFactory to also add exclude list
> of namespaces, eg. "/ajax,/login", thus will allow to work in your
> configuration.
> 
> Could you register an issue?
> 
> 
> Thanks in advance
> -- 
> Łukasz
> + 48 606 323 122 http://www.lenart.org.pl/
> 
> 2013/6/26 Felipe Lorenz <felipe.lor...@idealogic.com.br>:
>> Hi Lukasz,
>> 
>> I could identify one plugin wich could be creating this behaviour, the rest 
>> plugin.
>> 
>> 
>> Since I have this configuration:
>>>> <constant name="struts.mapper.class" 
>>>> value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
>>>> <constant name="struts.mapper.prefixMapping" 
>>>> value=":rest,/ajax:struts,/login:struts"/>
>> 
>> 
>> I expect that, when I request the following url 
>> http://xxxxxxxxxxx.com/ajax/anyThingHere, struts should handle this call. 
>> But instead, RestActionProxyFactory is handle this call.
>> 
>> But the RestActionProxyFactory class has a if, and every time the namespace 
>> attribute is injected with "/ajax" value. So the condition always is 
>> redirect to the rest plugin handler and not to the struts default.
>> 
>> Here is my ActionProxyFactory implementation:
>> 
>> public class CustomActionProxyFactory extends RestActionProxyFactory {
>> 
>>        @Override
>>        public ActionProxy createActionProxy(String namespace, String 
>> actionName, String methodName, Map<String, Object> extraContext, boolean 
>> executeResult, boolean cleanupContext) {
>>                RestActionProxyFactory p = new RestActionProxyFactory();
>>                p.setContainer(container);
>>                if ("/ajax".equals(namespace)) {
>>                        p.setNamespace("/idealogic");
>>                }
>> 
>>                return p.createActionProxy(namespace, actionName, methodName, 
>> extraContext, executeResult, cleanupContext);
>>        }
>> }
>> 
>> By some reason, it fixed the origin behaviour.
>> 
>> I hope it could help you.
>> 
>> Thanks,
>> Felipe Lorenz
>> 
>> Em 26/06/2013, às 04:45, Lukasz Lenart escreveu:
>> 
>>> As I understand you use <s:action executeResult="false"/> ? Which
>>> means result named "json" shouldn't be executed, you can even remove
>>> it.
>>> 
>>> 
>>> Regards
>>> --
>>> Łukasz
>>> + 48 606 323 122 http://www.lenart.org.pl/
>>> 
>>> 2013/6/22 Felipe Lorenz <felipe.lor...@idealogic.com.br>:
>>>> Hello Lukasz,
>>>> 
>>>> I still facing this behaviour. Even with 2.3.16-SNAPSHOT.
>>>> 
>>>> One thing that make me thing, was the flush attribute. When it is true, 
>>>> the json result (the string) appear in the position where the action tag 
>>>> is in the jsp. But, when I change it to false, the result appears in the 
>>>> top os my page.
>>>> 
>>>> One workaround that I can use is return a result name that is no defined 
>>>> in the struts.xml. This workaround throw an exception, since struts could 
>>>> no find my result name, but my list is populated and no result from this 
>>>> action tag appear in my page.
>>>> 
>>>> I hope this information can help.
>>>> 
>>>> Also, I am printing my config:
>>>> 
>>>> struts.xml:
>>>> 
>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>> <!DOCTYPE struts PUBLIC
>>>>       "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
>>>>       "http://struts.apache.org/dtds/struts-2.3.dtd";>
>>>> <struts order="10">
>>>>       <constant name="struts.devMode" value="false" />
>>>>       <constant name="struts.action.extension" value=",json,xhtml,xml"/>
>>>> 
>>>>       <constant name="struts.convention.action.mapAllMatches" value="true" 
>>>> />
>>>>       <constant name="struts.convention.default.parent.package" 
>>>> value="default"/>
>>>> 
>>>>       <constant name="struts.custom.i18n.resources" value="global" />
>>>> 
>>>>       <constant name="struts.mapper.class" 
>>>> value="org.apache.struts2.dispatcher.mapper.PrefixBasedActionMapper"/>
>>>>       <constant name="struts.mapper.prefixMapping" 
>>>> value=":rest,/ajax:struts,/login:struts"/>
>>>> 
>>>>       <package name="default" extends="rest-default">
>>>> 
>>>>               <interceptors>
>>>>                       <interceptor 
>>>> class="br.com.idealogic.interceptor.LoginInterceptor" name="login"/>
>>>>                       <interceptor 
>>>> class="br.com.idealogic.interceptor.PermissaoInterceptor" 
>>>> name="permissao"/>
>>>>                       <interceptor 
>>>> class="br.com.idealogic.interceptor.I18nInterceptor" name="idioma"/>
>>>>                       <interceptor 
>>>> class="br.com.idealogic.interceptor.JPAInterceptor" name="jpa"/>
>>>>                       <interceptor-stack name="jpaStack">
>>>>                               <interceptor-ref name="login"/>
>>>>                               <interceptor-ref name="permissao"/>
>>>>                               <interceptor-ref name="idioma"/>
>>>>                               <interceptor-ref name="jpa"/>
>>>>                               <interceptor-ref name="restDefaultStack"/>
>>>>                       </interceptor-stack>
>>>>               </interceptors>
>>>>               <default-interceptor-ref name="jpaStack"/>
>>>> 
>>>> 
>>>>               <default-action-ref 
>>>> name="login_sistema"></default-action-ref>
>>>> 
>>>>               <global-results>
>>>>                       <result name="login">/login.jsp</result>
>>>>                       <result name="forbidden">/forbidden.jsp</result>
>>>>               </global-results>
>>>> 
>>>>       </package>
>>>> 
>>>>       <include file="struts-ajax.xml"/>
>>>>       <include file="struts-login.xml"/>
>>>>       <include file="struts-filtro.xml"/>
>>>> </struts>
>>>> 
>>>> struts-ajax.xml
>>>> 
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <!DOCTYPE struts PUBLIC
>>>> "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
>>>> "http://struts.apache.org/dtds/struts-2.0.dtd";>
>>>> <struts>
>>>>       <package name="ajax" extends="json-default" namespace="/ajax">
>>>>               <interceptors>
>>>>                       <interceptor 
>>>> class="br.com.idealogic.interceptor.JPAInterceptor" name="jpa"/>
>>>>                       <interceptor-stack name="jpaJsonStack">
>>>>                               <interceptor-ref name="jpa"/>
>>>>                               <interceptor-ref 
>>>> name="jsonValidationWorkflowStack"/>
>>>>                       </interceptor-stack>
>>>>               </interceptors>
>>>>               <default-interceptor-ref name="jpaJsonStack"/>
>>>> 
>>>> 
>>>>               <action name="loadCidadeByEstado" 
>>>> method="loadCidadeByEstado" 
>>>> class="br.com.seedingControl.action.CidadeAction">
>>>>                       <result name="json" type="json">
>>>>                               <param name="includeProperties">
>>>>                                       ^cidades\[\d+\]\.idCidade,
>>>>                                       ^cidades\[\d+\]\.nmCidade
>>>>                               </param>
>>>>                       </result>
>>>>               </action>
>>>> 
>>>>       </package>
>>>> </struts>
>>>> 
>>>> Thanks for all your help!
>>>> 
>>>> Felipe Lorenz
>>>> 
>>>> Em 22/06/2013, às 04:27, Lukasz Lenart escreveu:
>>>> 
>>>>> 2013/6/22 Litman, Bruno <blit...@alabamainteractive.org>:
>>>>>> We are also experiencing issues with tags and theme files, we are 
>>>>>> upgrading many applications from 2.3.4.1 to 2.3.14.3
>>>>>> I am not sure if this is related - if not and if I need to start a new 
>>>>>> discussion please let me know and accept my apology.
>>>>>> 
>>>>>> 1/
>>>>>> 
>>>>>> We previously always coded forms as :
>>>>>>      <s:form action="login" namespace="/">....
>>>>>> Now randomly, this fails to generate the proper action url in the html 
>>>>>> (it is missing the '.action', which results in a 404 once you post the 
>>>>>> form)
>>>>>> 
>>>>>> The only workaround we have found so far is to add the '.action' suffix 
>>>>>> to the s:form's action attribute. Before it was always added for us by 
>>>>>> struts.
>>>>>> So now we are having success with
>>>>>>      <s:form action="login.action" namespace="/">...
>>>>>> 
>>>>>> Is this expected behavior? Did this change recently? 2.3.4.1 is not so 
>>>>>> ancient..
>>>>> 
>>>>> No, it isn't - mainly a bug - Struts should add suffix for you, you
>>>>> basically use the same action names as defined in struts.xml. This is
>>>>> very strange, I have just tested with struts2-blank on Jetty and
>>>>> suffix was there. Could you share more details about the config?
>>>>> 
>>>>>> 2/
>>>>>> 
>>>>>> We are trying to replace the "required" attribute in the textfields with 
>>>>>> "requiredLabel" without success. Was the xhtml theme's ftl file 
>>>>>> "controlheader_core" updated to reflect the changes in the 
>>>>>> struts-tags.tld (requiredLabel replaced required)?
>>>>> 
>>>>> You are right, it is bug :\ Please fill an issue
>>>>> 
>>>>>> Also, it seems applications are randomly serving ftl files from other 
>>>>>> applications' theme folders with the same name.
>>>>>> This was demonstrated by modifying something obvious in one 
>>>>>> application's ftl file (displaying some text next to a text field's 
>>>>>> label), and the effect can be seen randomly on other applications which 
>>>>>> shouldn’t even see that application's template folder (the themes are 
>>>>>> however named the same in both applications)
>>>>>> I am only able to make the "requiredLabel" attribute work if placed in a 
>>>>>> <s:param> tag as opposed to being just an attribute of the s:textfield 
>>>>>> tag, but even so it is still not always using the same ftl files 
>>>>>> (however always from similarly named themes placed inside each 
>>>>>> application)
>>>>>> 
>>>>>> This is extremely confusing. Is FreeMarker caching files independently 
>>>>>> of the application? Is the app container interfering with caching? (We 
>>>>>> are using Resin 4.0.36)
>>>>> 
>>>>> Hmmm... very strange behaviour, it will be hard to find the source of
>>>>> the problem. Maybe it is related to new ContainerHolder and how Resin
>>>>> is managing threads - but I'm not sure :\
>>>>> 
>>>>> 
>>>>> Regards
>>>>> --
>>>>> Łukasz
>>>>> + 48 606 323 122 http://www.lenart.org.pl/
>>>>> 
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>>> 
>>>> 
>>>> 
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>>> For additional commands, e-mail: user-h...@struts.apache.org
>>>> 
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>>> For additional commands, e-mail: user-h...@struts.apache.org
>>> 
>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
>> For additional commands, e-mail: user-h...@struts.apache.org
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
> 

Reply via email to