Is parts bigger than 0 in your case?  If so, what's contained in it?  If
it's not, then I don't think the Interceptor would have anything to do.

On 9/11/07, Gamble, Wesley (WG10) <[EMAIL PROTECTED]> wrote:
>
> I'm calling a "ping" method on my Web service.  Does that jive with what
> you're found?
>
> On lines 61-63 of WrapperClassOutInterceptor, I see:
>
>         if (parts.size() > 0) {
>             wrapped = parts.get(0).getTypeClass();
>         }
>
> I'm pretty sure I'm not passing any parameters to "ping".
>
> If the "parts" variable represents the set of input parameters,
> so I wouldn't even think that any of the code you mentioned would be
> executed.
>
> Yet I get the exact same error as you.
>
> ?
>
> Wes
>
> -----Original Message-----
> From: Ryan Moquin [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 11, 2007 11:54 AM
> To: [email protected]
> Subject: Re: Can someone tell me what WrapperClassOutInterceptor is
> supposed to do?
>
> Yeah, the first parameter is the only parameter that my webservice
> method
> needs.  The second parameter is the header.  The header gets dropped
> when it
> wraps the first parameter.  I'm not even sure why the wrapping is
> necessary,
> since the class that it used to wrap the parameter is already generated
> and
> could be easily used in the method signature instead.
>
> On 9/11/07, Gamble, Wesley (WG10) <[EMAIL PROTECTED]> wrote:
> >
> > Ryan,
> >
> > Impressive.  What is the first parameter object in the failing case -
> > the one
> > that needs to be wrapped?
> >
> > In general, what is the necessity of wrapping the parameters in the
> > first place?
> >
> > Wes
> >
> > -----Original Message-----
> > From: Ryan Moquin [mailto:[EMAIL PROTECTED]
> > Sent: Tuesday, September 11, 2007 11:38 AM
> > To: [email protected]
> > Subject: Can someone tell me what WrapperClassOutInterceptor is
> supposed
> > to do?
> >
> > I've been debugging my "disappearing header" problem.  I've narrowed
> it
> > down
> > to the WrapperClassOutInterceptor class.  On line 66, it grabs a
> > reference
> > to the parameters that I passed into my method I'm calling for my web
> > service.  It then takes these parameters and apparently tries to see
> if
> > there is a WrapperHelper for them.  Or well, by the fact that it only
> > checks
> > for parts.get(0), means that it's checking my first parameter but not
> > checking my second parameter (my header).
> >
> > Now, there is no WrapperHelper apparently for my first parameter
> object,
> > so
> > it creates one and wraps it.  At this point the Interceptor seems
> happy
> > with
> > the job that it did and calls the following code:
> >
> > Object o2 = helper.createWrapperObject(objs);
> >                 objs.clear();
> >                 objs.put(parts.get(0), o2);
> >
> > When it does this, it clears the MessageContentsList containing my
> > parameter
> > and my header.  It puts my first parameter back in and leaves the old
> > slot
> > held by my header as null.  This is why my header is disappearing.
> Why
> > does
> > this class only reference parts(0) when there is more than 1 part?
> >
> > This Interceptor seems to assume that there is only 1 parameter.  The
> > reason
> > why my stripped down WSDL doesn't hit this apparent bug is because
> when
> > I
> > generate the java classes for that wsdl, my first parameter is
> generated
> > as
> > a wrapper object around a string and therefore doesn't need to create
> a
> > wrapper class and doesn't delete the elements from the
> > MessageContentList.
> > This appears to be a bug.  I think I can now change my test working
> WSDL
> > to
> > exploit this problem.  I'll then post it for you to look at.
> >
>

Reply via email to