On Monday 20 December 2010 4:11:38 am Jason Pell wrote:
> Hi,
> 
> When I include an @XmlRequired attribute the generated WSDL wrapper
> element has the namespace of the service rather than the WebParam
> element itself.  So I have the following interface:
> 
> @WebService(name="PersonService",
> targetNamespace="http://pellcorp.com/PersonService";)
> public interface PersonService {
>       @WebResult(name = "PersonResult",
> targetNamespace="http://pellcorp.com/Person";) @WebMethod(operationName =
> "retrievePersonScore")
>       PersonResult retrievePersonScore(
>               @XmlElement(required = true) @WebParam(name = "Person",
> targetNamespace="http://pellcorp.com/Person";) Person request);
> }
> 
> Without including @XmlElement(required = true) the Person element in
> the WSDL is in the http://pellcorp.com/Person namespace.  When I
> include the @XmlElement(required = true) its in the
> http://pellcorp.com/PersonService namespace.  I tried this same
> operation with JAX-WS 2.2.1 metro and it works as I expected.  This
> looks like a bug to me.  I can workaround it by providing my own
> @RequestWrapper

This does sound like a bug.   Can you log it?   I THINK that we are just 
copying the XmlElement annotation directly if it's there.   Thus, if you add 
the namespace and name attributes to the XmlElement annotation, then it's 
likely to work.

Dan


> I know there were changes made in 2.3.1 to fix the fact that the
> @XmlElement(required = true) was being ignored.  Any chance that the
> GeneratedWrapper has another bug?  The Person jaxb class has a
> XmlRootElement like so:
> 
> @XmlRootElement(name="Person", namespace="http://pellcorp.com/Person";)
> 
> Thanks for any advice
> 
> Cheers
> Jason

-- 
Daniel Kulp
[email protected]
http://dankulp.com/blog

Reply via email to