with 2.0.1, I can give you a simple wsdl that fails without the exsh option
on.  I'll go fill out the bug report for you real quick.

On 9/11/07, James Mao <[EMAIL PROTECTED]> wrote:
>
> We have not finally announce the release of 2.0.2,
> The CXF 2.1 is just begin, and we will migrate the jaxws api and jaxb
> versions to 2.1,
> So, I would say there'll have big changes in CXF2.1, I would suggest you
> stick to 2.0.2
> I hope you can get the test case done, so I can fix it for you.
>
> Regards,
> James
>
> > No problem.  Do you have any idea how stable 2.1 is?  I notice that my
> issue
> > with the IndexOutOfBounds with the one Interceptor doesn't happen on 2.1but
> > does on 2.0.1 (so somehow it have been fixed, directly or
> indirectly).  Is
> > it helpful to know if it's a problem on 2.1?  Is it relatively safe to
> use
> > 2.1 snapshots?
> >
> > On 9/11/07, James Mao <[EMAIL PROTECTED]> wrote:
> >
> >> Great, That's definitely helpful.
> >>
> >> Thanks Ryan,
> >>
> >> James
> >>
> >>
> >>
> >>> Sure, I'll see if I can somehow get my test case working that fails,
> >>>
> >> though
> >>
> >>> maybe it doesn't fail and the bug with the interceptor that I
> mentioned
> >>> earlier is causing it to fail no matter how I run wsdl2java.  I'll see
> >>>
> >> if I
> >>
> >>> can finish getting a small test case.
> >>>
> >>>
> >>> On 9/11/07, James Mao <[EMAIL PROTECTED]> wrote:
> >>>
> >>>
> >>>> Hi Ryan,
> >>>>
> >>>>
> >>>>
> >>>>> I was able to get this to work now with my scaled down test wsdl,
> but
> >>>>>
> >>>>>
> >>>> not
> >>>>
> >>>>
> >>>>> the full wsdl that I need it to work with, I'll do my best to help
> you
> >>>>>
> >>>>>
> >>>> with
> >>>>
> >>>>
> >>>>> what I know about this.
> >>>>>
> >>>>> I did notice your thread that sounded familiar.  Apparently if you
> add
> >>>>>
> >>>>>
> >>>> the
> >>>>
> >>>>
> >>>>> -exsh true parameter to wsdl2java, you'll end up with an extra
> >>>>>
> >> parameter
> >>
> >>>> in
> >>>>
> >>>>
> >>>>> your method signature of your port class implementation.  This extra
> >>>>> parameter is the header specified in your wsdl.  If you don't add
> the
> >>>>>
> >>>>>
> >>>> exsh,
> >>>>
> >>>>
> >>>>> you won't get the parameter and end up with an IndexOutOfBounds
> error
> >>>>> because cxf is expecting the header.  I'm not sure why cxf would
> >>>>>
> >> assume
> >>
> >>>> you
> >>>>
> >>>>
> >>>>> are including the header if you never generated your classes to
> accept
> >>>>>
> >>>>>
> >>>> one.
> >>>>
> >>>> If exsh not turned on, then there'll not generate the extra header
> >>>> parameter, and it should not fail the runtime,
> >>>> otherwise there's a bug in the runtime. the header parameter is
> >>>>
> >> optional,
> >>
> >>>> I remember that i fixed this in both the tools and runtime,
> >>>> but maybe there's one case that i didn't cover, so, do you mind send
> >>>> your case (simplified) which i can reproduce,
> >>>> If you can file a jira, that will be great.
> >>>>
> >>>> Regards,
> >>>> James
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> I know my classes weren't setting the header because when I did a
> find
> >>>>> usages on my AuthCredentials class, which is put in the header, it
> >>>>>
> >>>>>
> >>>> wasn't
> >>>>
> >>>>
> >>>>> used anywhere.  Actually the generated client code, didn't even
> >>>>>
> >> actually
> >>
> >>>>> make calls to invoke the webservice.  It would just create a
> response
> >>>>>
> >>>>>
> >>>> object
> >>>>
> >>>>
> >>>>> set to null and return it, and that was it.  So the generated client
> >>>>>
> >> in
> >>
> >>>> my
> >>>>
> >>>>
> >>>>> opinion was useless anyhow.
> >>>>>
> >>>>> On 9/11/07, Gamble, Wesley (WG10) <[EMAIL PROTECTED]> wrote:
> >>>>>
> >>>>>
> >>>>>
> >>>>>> Ryan,
> >>>>>>
> >>>>>> "All I
> >>>>>> get currently is an IndexOutOfBoundsException when CXF tries to
> >>>>>>
> >> create
> >>
> >>>>>> the
> >>>>>> header of the SOAP message to send,"
> >>>>>>
> >>>>>> sounds suspiciously like my problem (thread: "Can't get at SOAP
> error
> >>>>>> from Web service...").  I'm getting an index out of bounds
> exception
> >>>>>>
> >> as
> >>
> >>>>>> well on the header processing.
> >>>>>>
> >>>>>> What is the -exsh flag on wsdl2java supposed to do for you?  What
> >>>>>>
> >> does
> >>
> >>>>>> "Enables or disables processing of extended soap header message
> >>>>>> binding." mean?  How would I know the difference between a regular
> >>>>>>
> >> and
> >>
> >>>>>> an extended soap header message?
> >>>>>>
> >>>>>> How do you know that "the generated client classes do NOT set the
> >>>>>>
> >>>>>>
> >>>> header
> >>>>
> >>>>
> >>>>>> that is specified in the binding"?
> >>>>>>
> >>>>>> Wes
> >>>>>>
> >>>>>> -----Original Message-----
> >>>>>> From: Ryan Moquin [mailto:[EMAIL PROTECTED]
> >>>>>> Sent: Tuesday, September 11, 2007 9:36 AM
> >>>>>> To: [email protected]
> >>>>>> Subject: Adding headers to soap request
> >>>>>>
> >>>>>> I'm writing this as a new message, but I'm hoping that it's answer
> >>>>>>
> >> will
> >>
> >>>>>> solve my other issue I'm writing about.  I think I'm having having
> >>>>>> trouble
> >>>>>> understanding how to add a header to my request using cxf.  In
> short,
> >>>>>>
> >> I
> >>
> >>>>>> have
> >>>>>> a WSDL that defines this element:
> >>>>>>
> >>>>>> <s:element name="AuthCredentials" type="tns:AuthCredentials"/>
> >>>>>>       <s:complexType name="AuthCredentials">
> >>>>>>         <s:sequence>
> >>>>>>           <s:element minOccurs="0" maxOccurs="1" name="username"
> >>>>>> type="s:string"/>
> >>>>>>           <s:element minOccurs="0" maxOccurs="1" name="password"
> >>>>>> type="s:string"/>
> >>>>>>         </s:sequence>
> >>>>>>       </s:complexType>
> >>>>>>
> >>>>>> and then defines a binding that uses it:
> >>>>>>
> >>>>>> <wsdl:operation name="sendNotification">
> >>>>>>       <soap:operation
> >>>>>> soapAction="urn://testnotification/sendNotification"
> >>>>>> style="document"/>
> >>>>>>       <wsdl:input>
> >>>>>>         <soap:body use="literal"/>
> >>>>>>         <soap:header message="tns:sendNotificationAuthCredentials"
> >>>>>> part="AuthCredentials" use="literal"/>
> >>>>>>       </wsdl:input>
> >>>>>>       <wsdl:output>
> >>>>>>         <soap:body use="literal"/>
> >>>>>>       </wsdl:output>
> >>>>>>     </wsdl:operation>
> >>>>>>
> >>>>>> When I run this WSDL through wsdltojava using -exsh true, the
> >>>>>>
> >> generated
> >>
> >>>>>> client classes do NOT set the header that is specified in the
> >>>>>>
> >> binding,
> >>
> >>>>>> which
> >>>>>> is what I thought that the -exsh is supposed to do for you.  So
> >>>>>> basically,
> >>>>>> I'm trying to figure out how I would add this element to my
> request.
> >>>>>> Here
> >>>>>> is what WSDL to java generated, how do I add the AuthCredentials
> >>>>>>
> >>>>>>
> >>>> element
> >>>>
> >>>>
> >>>>>> to
> >>>>>> the messagingPort class so that my request will go through with it?
> >>>>>>
> >> All
> >>
> >>>>>> I
> >>>>>> get currently is an IndexOutOfBoundsException when CXF tries to
> >>>>>>
> >> create
> >>
> >>>>>> the
> >>>>>> header of the SOAP message to send, I'm guessing because I don't
> know
> >>>>>> how to
> >>>>>> add the header.  I looked at the CXF examples on it, but it doesn't
> >>>>>>
> >>>>>>
> >>>> look
> >>>>
> >>>>
> >>>>>> like the headers are being added as a header:
> >>>>>>
> >>>>>> public void sendNotification() {
> >>>>>>     NotificationService messagingService = null;
> >>>>>>     NotificationServicePort messagingPort = null;
> >>>>>>
> >>>>>>     messagingService = new NotificationService(wsdl, SERVICE_NAME);
> >>>>>>     messagingPort = messagingService.getNotificationServicePort();
> >>>>>>
> >>>>>>     System.out.println("Invoking sendNotification...");
> >>>>>>     java.lang.String _sendNotification_parametersVal = "";
> >>>>>>     javax.xml.ws.Holder<java.lang.String>
> >>>>>>
> >> _sendNotification_parameters
> >>
> >>>> =
> >>>>
> >>>>
> >>>>>> new
> >>>>>> javax.xml.ws.Holder<java.lang.String
> >>>>>>
> >>> (_sendNotification_parametersVal);
> >>>
> >>>>>>     messagingPort.sendNotification(_sendNotification_parameters);
> >>>>>>     System.out.println
> >>>>>>
> >> ("sendNotification._sendNotification_parameters="
> >>
> >>>>>> +
> >>>>>> _sendNotification_parameters.value);
> >>>>>>   }
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>
> >
> >
>

Reply via email to