axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rich Scheuerle (JIRA)" <j...@apache.org>
Subject [jira] Updated: (AXIS2-4668) JAX-WS: Error indicating Duplicate @XmlType when using JAX-WS webmethods with @JAXB data objects
Date Tue, 30 Mar 2010 18:06:28 GMT

     [ https://issues.apache.org/jira/browse/AXIS2-4668?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rich Scheuerle updated AXIS2-4668:
----------------------------------

    Description: 
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 ns->package 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 the same 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 runtime attempts to build the JAXBContext, an error occurs 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
has the highest precedence).

    The solution only affects the JAX-WS code.
    I will also contribute a test case that matches the problem scenario.



  was:
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.




> 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
>   Original Estimate: 24h
>  Remaining Estimate: 24h
>
> 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 ns->package 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 the same 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 runtime attempts to build the JAXBContext, an error occurs 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 has 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: java-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: java-dev-help@axis.apache.org


Mime
View raw message