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. >
