felipe.lorenz Felipe Lorenz Gerente de Projetos Idealogic Software Fone: (51) 3715 5523 - (51) 3715 5548 www.idealogic.com.br
Em 27/06/2013, às 09:17, Lukasz Lenart escreveu: > Username? > > 2013/6/27 Felipe Lorenz <felipe.lor...@idealogic.com.br>: >> 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 >>> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org >