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