JAX-WS: Error indicating Duplicate @XmlType when using JAX-WS webmethods with
@JAXB data objects
------------------------------------------------------------------------------------------------
Key: AXIS2-4668
URL: https://issues.apache.org/jira/browse/AXIS2-4668
Project: Axis2
Issue Type: Bug
Reporter: Rich Scheuerle
Assignee: Rich Scheuerle
Background:
The JAX-WS runtime builds a JAXBContext to control the marshaling and
unmarshaling of data.
A JAXBContext is built using package names (the class that does this is
JAXBUtils).
The JAX-WS runtime builds a list of packages by doing a one-time examination of
the referenced types.
i) types referenced by the each method with a @WebMethod.
ii) types referenced by @XmlSeeAlso annotations
iii) types referenced by @RequestWrapper or @ResponseWrapper annotations.
The JAX-WS runtime also collects packages by doing a package->ns conversion for
namespaces that it finds:
a) namespaces are found in the wsdl/schema
b) namespaces are found in the annotations on the web service methods.
Problem:
A customer has an application that has two different packages that contain
JAXB generated code for a single namespace.
One of these packages was directly referenced (via (i) above) by the web
service.
The other package was assume referenced (via (a) above).
When the JAX-WS attempt to build the JAXBContext, an error occurred
indicating that 2 classes had the same @XmlType.
Solution:
The root problem is the current algorithm does not differentiate between
the actual package references and the "softer" namespace calculated references.
The algorithm will be changed to identify and use precedence (i.e. actual
package reference have the highest precedence).
The solution only affects the JAX-WS code.
I will also contribute a test case that matches the problem scenario.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]