parts[0] is a MessagePartInfo object which appears to have "Ping" in the concreteName value. Parts[1] is a MessagePartInfo object which appears to have "APICredentials" in the concreteName value.
So...this implies to me that only the method name will _ever_ make it through. So any custom header values don't get passed on through WrapperClassOutInterceptor? Can that be right? That's kinda crazy. Wes -----Original Message----- From: Ryan Moquin [mailto:[EMAIL PROTECTED] Sent: Tuesday, September 11, 2007 12:01 PM To: [email protected] Subject: Re: Can someone tell me what WrapperClassOutInterceptor is supposed to do? 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. > > >
