You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Nicola D'Elia <ni...@sinapsi.com> on 2009/08/26 15:06:14 UTC

WSDL Tweaking

Hi to everyone,
i'm tweaking the wsdl of my web service.

I use the jaxb binding.

My xml actually looks like the following:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:ls-doc-by-idResponse xmlns:ns1="
http://scrigno.popso.it/webservices-ext-polimi">
<id-doc>1</id-doc>
</ns1:ls-doc-by-idResponse>
</soap:Body>
</soap:Envelope>

I would like to:

1) define the name of the ns1 namespace, instead of a generic "ns1"
something like "polimi"
2) change the name of the response tag from "ls-doc-by-idResponse" to
"ls-doc-by-id-response"; acually i see that the "Response" suffix is added
automatically


How to do it ?
And if i change databinding to Aegis, the setting would still be valid or i
should tweak them again ?


Thanks

Nicola

Re: WSDL Tweaking

Posted by Nicola D'Elia <ni...@sinapsi.com>.
wrong cut&paste, the wsdl after the DefaultServiceConfiguration patch looks
now like:

<wsdl:operation name="close-file">
<wsdl:input message="tns:close-file" name="close-file"/>
<wsdl:output message="tns:close-file-response" name="close-file-response"/>
</wsdl:operation>

....


What do you think ?


On Thu, Aug 27, 2009 at 4:11 PM, Nicola D'Elia <ni...@sinapsi.com>wrote:

> Thanks Daniel, thanks.
>
> Actually to avoid to redefine every name, i patched
> JaxWsServiceConfiguration with a brutal search and replace of "Response" to
> "-response" !!
>
> The only "Response" left was in the output message
> (tns:close-fileResponse):
>
> <wsdl:operation name="close-file">
> <wsdl:input message="tns:close-file" name="close-file"/>
> <wsdl:output message="tns:close-fileResponse" name="close-fileResponse"/>
> </wsdl:operation>
>
> So i patched also DefaultServiceConfiguration:
>
> <wsdl:operation name="close-file">
> <wsdl:input message="tns:close-file" name="close-file"/>
> <wsdl:output message="tns:close-file-response" name="close-fileResponse"/>
> </wsdl:operation>
>
>
> Now it looks pretty.
>
> Is it also jax-ws compliant ??
>
>
> For the latter change there seemed to be no annotation....
>
> What do you think?
>
>
> Nicola
>
>
>
>
> On Wed, Aug 26, 2009 at 10:09 PM, Daniel Kulp <dk...@apache.org> wrote:
>
>>
>> If you are using the JAX-WS frontend, you would just need to add a
>> @ResponseWrapper annotation with name="ls-doc-by-id-response".   That
>> should
>> do it.
>>
>> Dan
>>
>>
>> On Wed August 26 2009 9:06:14 am Nicola D'Elia wrote:
>> > Hi to everyone,
>> > i'm tweaking the wsdl of my web service.
>> >
>> > I use the jaxb binding.
>> >
>> > My xml actually looks like the following:
>> >
>> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>> > <soap:Body>
>> > <ns1:ls-doc-by-idResponse xmlns:ns1="
>> > http://scrigno.popso.it/webservices-ext-polimi">
>> > <id-doc>1</id-doc>
>> > </ns1:ls-doc-by-idResponse>
>> > </soap:Body>
>> > </soap:Envelope>
>> >
>> > I would like to:
>> >
>> > 1) define the name of the ns1 namespace, instead of a generic "ns1"
>> > something like "polimi"
>> > 2) change the name of the response tag from "ls-doc-by-idResponse" to
>> > "ls-doc-by-id-response"; acually i see that the "Response" suffix is
>> added
>> > automatically
>> >
>> >
>> > How to do it ?
>> > And if i change databinding to Aegis, the setting would still be valid
>> or i
>> > should tweak them again ?
>> >
>> >
>> > Thanks
>> >
>> > Nicola
>>
>> --
>> Daniel Kulp
>> dkulp@apache.org
>> http://www.dankulp.com/blog
>>
>
>

Re: WSDL Tweaking

Posted by Nicola D'Elia <ni...@sinapsi.com>.
ok thanks, if it's not jax-ws compliant i will drop it !


Nicola



On Thu, Aug 27, 2009 at 5:56 PM, Daniel Kulp <dk...@apache.org> wrote:

>
>
> > Is it also jax-ws compliant ??
>
> Probably not.  There are several places in the spec tha specifically say:
>
> MUST be the value of the name attribute of the wsdl:operation suffixed with
> “Response”
>
>
> You really don't need to "patch"
> JaxWsServiceConfiguration/DefaultServiceConfiguration.   You can actually
> write your own subclass of AbstractServiceConfiguration that you just
> configure in BEFORE the other configs.   Just override the methods that you
> actually care about (the ones you changed).
>
> Dan
>
>
>
> On Thu August 27 2009 10:11:03 am Nicola D'Elia wrote:
> > Thanks Daniel, thanks.
> >
> > Actually to avoid to redefine every name, i patched
> > JaxWsServiceConfiguration with a brutal search and replace of "Response"
> to
> > "-response" !!
> >
> > The only "Response" left was in the output message
> > (tns:close-fileResponse):
> >
> > <wsdl:operation name="close-file">
> > <wsdl:input message="tns:close-file" name="close-file"/>
> > <wsdl:output message="tns:close-fileResponse" name="close-fileResponse"/>
> > </wsdl:operation>
> >
> > So i patched also DefaultServiceConfiguration:
> >
> > <wsdl:operation name="close-file">
> > <wsdl:input message="tns:close-file" name="close-file"/>
> > <wsdl:output message="tns:close-file-response"
> name="close-fileResponse"/>
> > </wsdl:operation>
> >
> >
> > Now it looks pretty.
> >
> > Is it also jax-ws compliant ??
> >
> >
> > For the latter change there seemed to be no annotation....
> >
> > What do you think?
> >
> >
> > Nicola
> >
> > On Wed, Aug 26, 2009 at 10:09 PM, Daniel Kulp <dk...@apache.org> wrote:
> > > If you are using the JAX-WS frontend, you would just need to add a
> > > @ResponseWrapper annotation with name="ls-doc-by-id-response".   That
> > > should
> > > do it.
> > >
> > > Dan
> > >
> > > On Wed August 26 2009 9:06:14 am Nicola D'Elia wrote:
> > > > Hi to everyone,
> > > > i'm tweaking the wsdl of my web service.
> > > >
> > > > I use the jaxb binding.
> > > >
> > > > My xml actually looks like the following:
> > > >
> > > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/
> ">
> > > > <soap:Body>
> > > > <ns1:ls-doc-by-idResponse xmlns:ns1="
> > > > http://scrigno.popso.it/webservices-ext-polimi">
> > > > <id-doc>1</id-doc>
> > > > </ns1:ls-doc-by-idResponse>
> > > > </soap:Body>
> > > > </soap:Envelope>
> > > >
> > > > I would like to:
> > > >
> > > > 1) define the name of the ns1 namespace, instead of a generic "ns1"
> > > > something like "polimi"
> > > > 2) change the name of the response tag from "ls-doc-by-idResponse" to
> > > > "ls-doc-by-id-response"; acually i see that the "Response" suffix is
> > >
> > > added
> > >
> > > > automatically
> > > >
> > > >
> > > > How to do it ?
> > > > And if i change databinding to Aegis, the setting would still be
> valid
> > > > or
> > >
> > > i
> > >
> > > > should tweak them again ?
> > > >
> > > >
> > > > Thanks
> > > >
> > > > Nicola
> > >
> > > --
> > > Daniel Kulp
> > > dkulp@apache.org
> > > http://www.dankulp.com/blog
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>

Re: WSDL Tweaking

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

> Is it also jax-ws compliant ??

Probably not.  There are several places in the spec tha specifically say:

MUST be the value of the name attribute of the wsdl:operation suffixed with 
“Response”


You really don't need to "patch" 
JaxWsServiceConfiguration/DefaultServiceConfiguration.   You can actually 
write your own subclass of AbstractServiceConfiguration that you just 
configure in BEFORE the other configs.   Just override the methods that you 
actually care about (the ones you changed).

Dan



On Thu August 27 2009 10:11:03 am Nicola D'Elia wrote:
> Thanks Daniel, thanks.
>
> Actually to avoid to redefine every name, i patched
> JaxWsServiceConfiguration with a brutal search and replace of "Response" to
> "-response" !!
>
> The only "Response" left was in the output message
> (tns:close-fileResponse):
>
> <wsdl:operation name="close-file">
> <wsdl:input message="tns:close-file" name="close-file"/>
> <wsdl:output message="tns:close-fileResponse" name="close-fileResponse"/>
> </wsdl:operation>
>
> So i patched also DefaultServiceConfiguration:
>
> <wsdl:operation name="close-file">
> <wsdl:input message="tns:close-file" name="close-file"/>
> <wsdl:output message="tns:close-file-response" name="close-fileResponse"/>
> </wsdl:operation>
>
>
> Now it looks pretty.
>
> Is it also jax-ws compliant ??
>
>
> For the latter change there seemed to be no annotation....
>
> What do you think?
>
>
> Nicola
>
> On Wed, Aug 26, 2009 at 10:09 PM, Daniel Kulp <dk...@apache.org> wrote:
> > If you are using the JAX-WS frontend, you would just need to add a
> > @ResponseWrapper annotation with name="ls-doc-by-id-response".   That
> > should
> > do it.
> >
> > Dan
> >
> > On Wed August 26 2009 9:06:14 am Nicola D'Elia wrote:
> > > Hi to everyone,
> > > i'm tweaking the wsdl of my web service.
> > >
> > > I use the jaxb binding.
> > >
> > > My xml actually looks like the following:
> > >
> > > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > > <soap:Body>
> > > <ns1:ls-doc-by-idResponse xmlns:ns1="
> > > http://scrigno.popso.it/webservices-ext-polimi">
> > > <id-doc>1</id-doc>
> > > </ns1:ls-doc-by-idResponse>
> > > </soap:Body>
> > > </soap:Envelope>
> > >
> > > I would like to:
> > >
> > > 1) define the name of the ns1 namespace, instead of a generic "ns1"
> > > something like "polimi"
> > > 2) change the name of the response tag from "ls-doc-by-idResponse" to
> > > "ls-doc-by-id-response"; acually i see that the "Response" suffix is
> >
> > added
> >
> > > automatically
> > >
> > >
> > > How to do it ?
> > > And if i change databinding to Aegis, the setting would still be valid
> > > or
> >
> > i
> >
> > > should tweak them again ?
> > >
> > >
> > > Thanks
> > >
> > > Nicola
> >
> > --
> > Daniel Kulp
> > dkulp@apache.org
> > http://www.dankulp.com/blog

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

Re: WSDL Tweaking

Posted by Nicola D'Elia <ni...@sinapsi.com>.
Thanks Daniel, thanks.

Actually to avoid to redefine every name, i patched
JaxWsServiceConfiguration with a brutal search and replace of "Response" to
"-response" !!

The only "Response" left was in the output message (tns:close-fileResponse):

<wsdl:operation name="close-file">
<wsdl:input message="tns:close-file" name="close-file"/>
<wsdl:output message="tns:close-fileResponse" name="close-fileResponse"/>
</wsdl:operation>

So i patched also DefaultServiceConfiguration:

<wsdl:operation name="close-file">
<wsdl:input message="tns:close-file" name="close-file"/>
<wsdl:output message="tns:close-file-response" name="close-fileResponse"/>
</wsdl:operation>


Now it looks pretty.

Is it also jax-ws compliant ??


For the latter change there seemed to be no annotation....

What do you think?


Nicola



On Wed, Aug 26, 2009 at 10:09 PM, Daniel Kulp <dk...@apache.org> wrote:

>
> If you are using the JAX-WS frontend, you would just need to add a
> @ResponseWrapper annotation with name="ls-doc-by-id-response".   That
> should
> do it.
>
> Dan
>
>
> On Wed August 26 2009 9:06:14 am Nicola D'Elia wrote:
> > Hi to everyone,
> > i'm tweaking the wsdl of my web service.
> >
> > I use the jaxb binding.
> >
> > My xml actually looks like the following:
> >
> > <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> > <soap:Body>
> > <ns1:ls-doc-by-idResponse xmlns:ns1="
> > http://scrigno.popso.it/webservices-ext-polimi">
> > <id-doc>1</id-doc>
> > </ns1:ls-doc-by-idResponse>
> > </soap:Body>
> > </soap:Envelope>
> >
> > I would like to:
> >
> > 1) define the name of the ns1 namespace, instead of a generic "ns1"
> > something like "polimi"
> > 2) change the name of the response tag from "ls-doc-by-idResponse" to
> > "ls-doc-by-id-response"; acually i see that the "Response" suffix is
> added
> > automatically
> >
> >
> > How to do it ?
> > And if i change databinding to Aegis, the setting would still be valid or
> i
> > should tweak them again ?
> >
> >
> > Thanks
> >
> > Nicola
>
> --
> Daniel Kulp
> dkulp@apache.org
> http://www.dankulp.com/blog
>

Re: WSDL Tweaking

Posted by Daniel Kulp <dk...@apache.org>.
If you are using the JAX-WS frontend, you would just need to add a 
@ResponseWrapper annotation with name="ls-doc-by-id-response".   That should 
do it.

Dan


On Wed August 26 2009 9:06:14 am Nicola D'Elia wrote:
> Hi to everyone,
> i'm tweaking the wsdl of my web service.
>
> I use the jaxb binding.
>
> My xml actually looks like the following:
>
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
> <soap:Body>
> <ns1:ls-doc-by-idResponse xmlns:ns1="
> http://scrigno.popso.it/webservices-ext-polimi">
> <id-doc>1</id-doc>
> </ns1:ls-doc-by-idResponse>
> </soap:Body>
> </soap:Envelope>
>
> I would like to:
>
> 1) define the name of the ns1 namespace, instead of a generic "ns1"
> something like "polimi"
> 2) change the name of the response tag from "ls-doc-by-idResponse" to
> "ls-doc-by-id-response"; acually i see that the "Response" suffix is added
> automatically
>
>
> How to do it ?
> And if i change databinding to Aegis, the setting would still be valid or i
> should tweak them again ?
>
>
> Thanks
>
> Nicola

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