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 <mcucchi...@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 <jlm...@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-unsubscr...@struts.apache.org
> For additional commands, e-mail: user-h...@struts.apache.org
>
>

Reply via email to