struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Maurizio Cucchiara <maurizio.cucchi...@gmail.com>
Subject Re: Error "Function 'json:serialize' specifies 5 params, but 1 were declared" on WebLogic
Date Sun, 18 Sep 2011 06:46:28 GMT
Well done!

Maurizio Cucchiara

Il giorno 17/set/2011 00.36, "JOSE L MARTINEZ-AVIAL" <jlmagc@gmail.com> ha
scritto:
> Well, I opened a ticket with Oracle, and send them a testcase. They
> determined that it is a bug with the parsing of EL expression on WebLogic
> 10.3.0 for Windows. Later versions are not affected.
>
> Thank you for your help!
>
> 2011/8/31 Maurizio Cucchiara <mcucchiara@apache.org>
>
>> IIRC some application server provide their "custom" implementation of
>> the taglib library.
>> Looks like a WebLogic issue, after all there is no reason it works on
>> Linux (and also as you noticed, there is only one function declaration
>> inside JsonPlugin.tld).
>>
>> Maurizio Cucchiara
>>
>>
>>
>> On 31 August 2011 06:04, JOSE L MARTINEZ-AVIAL <jlmagc@gmail.com> wrote:
>> > BTW, I just upgraded to Strus-2.2.3, and it fails too, but this time
the
>> > errors says Function 'json:serialize' specifies 6 params, but 1 were
>> > declared.
>> >
>> > 2011/8/30 JOSE L MARTINEZ-AVIAL <jlmagc@gmail.com>
>> >
>> >> It's strange. I remove the c:put, deploy the war, and it failed again.
>> When
>> >> I took a look at the java code generated by the JSP, and it has the
>> >> following declaration
>> >>
>> >> static private weblogic.jsp.internal.jsp.JspFunctionMapper _jspx_fnmap
=
>> >> weblogic.jsp.internal.jsp.JspFunctionMapper.getInstance();
>> >> static {_jspx_fnmap.mapFunction("json:serialize",
>> >> org.apache.struts2.json.JSONUtil.class, "serialize", new Class[]{
>> >> java.lang.Object .class , java.util.Collection .class ,
>> java.util.Collection
>> >> .class , boolean .class , boolean .class });
>> >> }
>> >>
>> >> So it is creating a Function Mapper for json:serialize that receives 5
>> >> arguments (Object, Collection, Collection, boolean, boolean). If one
>> takes a
>> >> look at the API(
>> >>
>>
http://struts.apache.org/2.1.8/struts2-plugins/struts2-json-plugin/apidocs/org/apache/struts2/json/JSONUtil.html#method_summary
>> ),
>> >> the method serialize is overloaded, so there is a method that receives
>> only
>> >> an object(The one that is declared on the TLD), and another one that
>> >> receives the same arguments defined on the JSP. It seems that the
>> WebLogic
>> >> is ignoring the TLD, and it is just using another method instead of
the
>> one
>> >> indicated on the TLD, which is defined as follows
>> >>
>> >> [...]
>> >> <function>
>> >> <name>serialize</name>
>> >>
>> <function-class>org.apache.struts2.json.JSONUtil</function-class>
>> >> <function-signature>
>> >> java.lang.String serialize(java.lang.Object)
>> >> </function-signature>
>> >> </function>
>> >> [...]
>> >>
>> >> Any idea of why it can behave that way? It's curious that on Linux it
>> works
>> >> fine, it only fails on Windows.
>> >>
>> >>
>> >>
>> >>
>> >> 2011/8/30 Maurizio Cucchiara <mcucchiara@apache.org>
>> >>
>> >>> Also, you should verify against the latest version (2.2.3).
>> >>> Again, IIRC there should be some similar trouble with the version you
>> are
>> >>> using.
>> >>>
>> >>> Maurizio Cucchiara
>> >>>
>> >>>
>> >>>
>> >>> On 30 August 2011 21:51, JOSE L MARTINEZ-AVIAL <jlmagc@gmail.com>
>> wrote:
>> >>> > Hi,
>> >>> >
>> >>> > I'm using Struts 2.1.8, with plugin struts2-json-plugin-2.1.8.1.jar
>> in
>> >>> an
>> >>> > application deployed on WebLogic 10.3 ovver RedHat. We've been
using
>> the
>> >>> tag
>> >>> > json:serialize without issue for months. But today we installed
the
>> same
>> >>> > version of WebLogic over Windowx 7, and every time that tag is
used,
>> we
>> >>> got
>> >>> > that error:
>> >>> >
>> >>> > Function 'json:serialize' specifies 5 params, but 1 were declared
>> >>> >
>> >>> > The tag is used as follows:
>> >>> >
>> >>> > var boxContent = <c:out value="${json:serialize(myDataStore)}"
>> >>> > escapeXml='false'/>;
>> >>> >
>> >>> > It is the same war we deployed (and it works) on our RedHat
>> environment,
>> >>> so
>> >>> > I don't understand why is giving such error message. Any ideas?
>> >>> >
>> >>> > Thanks
>> >>> >
>> >>> > JL
>> >>> >
>> >>>
>> >>> ---------------------------------------------------------------------
>> >>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> >>> For additional commands, e-mail: user-help@struts.apache.org
>> >>>
>> >>>
>> >>
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message