On Tue, Feb 10, 2009 at 3:04 PM, Simon Nash <[email protected]> wrote:
> Simon Laws wrote:
>
>> So it affects the namespace of the
>> binding definition, but it shouldn't affect the namespace of the
>> global elements used by message parts within the portType
>> referenced by the binding (i.e., what goes on the wire).
>> In this example the portType is "ns0:HelloWorld" which refers to
>> global elements in the correct namespace "http:/helloworld"
>>
>> So this looks to me like an Axis bug with namespaces for imported
>> portTypes not being handled correctly. It seems the binding's
>> namespace is being used to register these operations instead of
>> the correct namespace as specified in the portType.
>>
>> Where in Axis is this registration happening? Which version
>> of Axis is being used? With this information I could dig around
>> a bit in the Axis code.
>>
>>
>> How, with this generated target namespace, do we intend that the binding
>> operation name is matched with the port type operation name?
>>
>> Simon
>>
> >
> The binding references the port type:
> <wsdl:binding name="HelloWorldBinding" type="ns0:HelloWorld">
>
> The "ns0:" in this QName provides the cross-namespace linkage.
>
> You've got me wondering now whether the operation names in
> the binding will match those in the portType if the binding
> and portType come from different namespaces. The operation
> names are NCNames so I would expect them to match. I'll take
> a look at the WSDL spec and try to confirm this.
>
> Simon
>
> Ok, so that's what I overlooked. The names in question in the WSDL are not
QNames.
In the class org.apache.axis2.description.AxisOperation.getName() returns a
QName. With this insight I'll look again and see if I'm interpreting what I
see correctly.
There is a line in
org.apache.axis2.description.AxisOperation.AxisDescription
AxisBindingOperation axisBindingOperation =
(AxisBindingOperation) axisBinding
.getChild(axisOperation.getName());
That returns null in my particular scenario.
I'm on Axis2 1.4.1
Simon