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