You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Valdemar Mejstad <ic...@gmail.com> on 2008/11/27 17:05:52 UTC

setAnonymousWrapperTypes() and JAX-WS

Hi,

I'm having trouble getting JAX-WS with JAXB databinding to work with the
configuration option for using anonymous wrapper types:

JaxWsServerFactoryBean serverFactory = new JaxWsServerFactoryBean();
// set address, service class etc...
serverFactory.getServiceFactory().setAnonymousWrapperTypes(true);
serverFactory.create();

Doing this doesn't result in the expected results (there are still separate
named complex types besides the elements in the WSDL).

It seems to work fine with the simple frontend + aegis databinding. Is this
configuration option unsupported for JAX-WS + JAXB, or is this a bug?

Cheers,
Valdemar

Re: setAnonymousWrapperTypes() and JAX-WS

Posted by Valdemar Mejstad <ic...@gmail.com>.
Thanks for looking into this. I created a JIRA at:

https://issues.apache.org/jira/browse/CXF-1930

Cheers,
Valdemar

On Mon, Dec 1, 2008 at 11:08 PM, Daniel Kulp <dk...@apache.org> wrote:

>
>
> On Thursday 27 November 2008 11:05:52 am Valdemar Mejstad wrote:
> > Hi,
> >
> > I'm having trouble getting JAX-WS with JAXB databinding to work with the
> > configuration option for using anonymous wrapper types:
>
> I see the problem.   With 2.1.x, if ASM is on the classpath, we use ASM to
> generate jaxb wrapper beans in memory and then let JAXB generate the
> schema.
> However, those generated wrapper beans aren't honoring that flag.
>
> If you pull asm off the classpath, it probably will generate what you
> expect.
>
> I THINK the problem is at line 197 of WrapperClassGenerator.    It needs to
> wrap the creation of the XmlType element with a call into the service
> factory
> bean (it's a field on the WrapperClassGenerator) to check that flag and not
> generate that annotation if true.
>
> Could you log a JIRA for that (feel free to assign to me)?   If you have
> the
> ability to checkout the source and build it, it would be great if you could
> give that fix a try as well and attache a patch.
>
> I'm busy for the next couple days and won't get a chance to look at it
> immediately so I want to make sure it doesn't get lost.
>
>
> Dan
>
>
> >
> > JaxWsServerFactoryBean serverFactory = new JaxWsServerFactoryBean();
> > // set address, service class etc...
> > serverFactory.getServiceFactory().setAnonymousWrapperTypes(true);
> > serverFactory.create();
> >
> > Doing this doesn't result in the expected results (there are still
> separate
> > named complex types besides the elements in the WSDL).
> >
> > It seems to work fine with the simple frontend + aegis databinding. Is
> this
> > configuration option unsupported for JAX-WS + JAXB, or is this a bug?
> >
> > Cheers,
> > Valdemar
>
>
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://dankulp.com/blog
>

Re: setAnonymousWrapperTypes() and JAX-WS

Posted by Daniel Kulp <dk...@apache.org>.

On Thursday 27 November 2008 11:05:52 am Valdemar Mejstad wrote:
> Hi,
>
> I'm having trouble getting JAX-WS with JAXB databinding to work with the
> configuration option for using anonymous wrapper types:

I see the problem.   With 2.1.x, if ASM is on the classpath, we use ASM to 
generate jaxb wrapper beans in memory and then let JAXB generate the schema.   
However, those generated wrapper beans aren't honoring that flag.   

If you pull asm off the classpath, it probably will generate what you expect. 

I THINK the problem is at line 197 of WrapperClassGenerator.    It needs to 
wrap the creation of the XmlType element with a call into the service factory 
bean (it's a field on the WrapperClassGenerator) to check that flag and not 
generate that annotation if true.   

Could you log a JIRA for that (feel free to assign to me)?   If you have the 
ability to checkout the source and build it, it would be great if you could 
give that fix a try as well and attache a patch.   

I'm busy for the next couple days and won't get a chance to look at it 
immediately so I want to make sure it doesn't get lost.


Dan


>
> JaxWsServerFactoryBean serverFactory = new JaxWsServerFactoryBean();
> // set address, service class etc...
> serverFactory.getServiceFactory().setAnonymousWrapperTypes(true);
> serverFactory.create();
>
> Doing this doesn't result in the expected results (there are still separate
> named complex types besides the elements in the WSDL).
>
> It seems to work fine with the simple frontend + aegis databinding. Is this
> configuration option unsupported for JAX-WS + JAXB, or is this a bug?
>
> Cheers,
> Valdemar



-- 
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog