Hi,
Please let me know if I should create a bug report for this ?
Thanks,
Raj.
On Thu, Jul 4, 2013 at 1:36 AM, <rshekar_at_gmail.com> wrote:
> Hi,
>
> I am implementing the service for a wsdl published by another Software
> Vendor. The software vendor's client uses Axis2 and I am using JAX-WS
> RI for the server implementation (2.2.7 runtime).
>
> There are a set of methods that have "non unique body parts", so I am
> trying to get the soap action based dispatch working for these methods.
> Axis 2 client sets the "action=urn:<methodName>" in the content-type
> header.
>
> However, dispatch still fails with the error:
>
> Cannot find dispatch method for
> Request=[soapAction="urn:<methodName>...
>
> After debugging this, I find that this change allows the dispatch to
> work:
>
> $ svn diff
> Index: rt/src/com/sun/xml/ws/model/JavaMethodImpl.java
> ===================================================================
> --- rt/src/com/sun/xml/ws/model/JavaMethodImpl.java (revision
> 14081)
> +++ rt/src/com/sun/xml/ws/model/JavaMethodImpl.java (working copy)
> @@ -205,7 +205,11 @@
> }
>
> public String getSOAPAction() {
> - return (wsdlOperation != null)? wsdlOperation.getSOAPAction():
> soapAction;
> + if (wsdlOperation != null && wsdlOperation.getSOAPAction() !=
> null) {
> + return wsdlOperation.getSOAPAction();
> + }
> +
> + return soapAction;
> }
>
> I am new to JAX-WS, but my understanding is that this is a bug.
>
> JavaMethodImpl.java : freeze() is finding the wsdl:operation from
> portType section in the wsdl, but the soap:operation and soapAction are
> defined in the wsdl:operation in the binding section of the wsdl.
>
> The software vendor's wsdl has three binding sections (for soap11,
> soap12 and http) and all of them have the soap:operation defined. The
> portType section does not have the soap:operation under the
> wsdl:operation definitions. This seems to be right according to the
> spec.
>
> Please advise,
> Thanks,
> Raj.
>
--
~ Raj ~