Simon,

The question is do we look at the <definitions> of the WSDL document
defining the imported portType
or the <definitions> of the document defining a WSDL service in terms of the
imported portType  (since the TNS
of each are different).

I haven't read all of JAX-WS either but agree that the CXF behavior makes
more sense.

If you consider the question "which <definitions>?" it seems you'd naturally
pick the one in which
the portType is actually DEFINED as opposed to merely IMPORTED>

>From what I can see the WSDL spec doesn't say anything particular about the
import behavior either.

On the one hand this isn't too critical since, with either choice, we
generate a just-as-legal
@WebService(targetNamespace....)
into the Java to capture the original TNS.

On the other hand, JAX-WS could have been clearer on this...






On Mon, Jun 9, 2008 at 4:45 AM, Simon Nash <[EMAIL PROTECTED]> wrote:

> Jean-Sebastien Delfino wrote:
>
>> Scott Kurz wrote:
>>
>>> Sebastien, I'm surprised the package names would be different.    What is
>>> the namespace you're using that isn't mapping to the same package in each
>>> tool?
>>> Just curious...
>>>
>>>
>> My app is an order processing app with the following:
>>
>> WSDL service namespace:
>> http://sample/Order/Binding
>>
>> WSDL Order portType namespace:
>> http://sample/Order
>>
>> The CXF tool generates interface sample.order.Order
>> The JAXWS RI tool generates interface sample.order.binding.Order
>>
>> I gave the same WSDL file (containing the WSDL service) to both tools.
>>
>> One could argue that both are correct vs the JAX-WS spec as they generate
>> a correct package name from the namespace of 'the' WSDL definition, but the
>> funny thing is that they do not pick the same WSDL definition... JAXWS-RI
>> picks the input definition given to the tool and CXF the definition that
>> actually contains the portType... and the JAXWS spec doesn't seem to state
>> which one should be picked (at least I couldn't find it).
>>
>> IMHO the CXF behavior is better, but I've not read all 150 pages of the
>> JAX-WS spec so I may be missing something :)
>>
> >
> From section 2.2 of the JAX-WS spec:
>
>  A wsdl:portType element is mapped to a Java interface in the package
>  mapped from the wsdl:definitions element (see section 2.1 for a
>  description of wsdl:definitions mapping).
>
> Section 2.1 says:
>
>  A wsdl:definitions element and its associated targetNamespace
>  attribute is mapped to a Java package. JAXB[10] (see appendix D)
>  defines a standard mapping from a namespace URI to a Java package
>  name. By default, this algorithm is used to map the value of a
>  wsdl:definitions element's targetNamespace attribute to a Java
>  package name.
>
>  } Conformance (Definitions mapping): In the absence of customizations,
>  the Java package name is mapped from the value of a wsdl:definitions
>  element's targetNamespace attribute using the algorithm defined by
>  JAXB[10].
>
> So IMO the Java package name that's used to map the portType should
> be derived from the targetNamespace of the wsdl:definitions element.
> What was this targetNamespace?
>
>  Simon
>
>

Reply via email to