You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by "KARR, DAVID" <dk...@att.com> on 2017/11/06 22:54:28 UTC

How to generate WADL on "root" of controller, not just with "?_wadl"?

I managed to add the 'cxf-rt-rs-service-description' artifact to my build, so that I get the WADL when I add "?_wadl" to my URL.  I'd actually like to make it return the WADL when I just try to access the "root" of the controller, without having to add the "?_wadl" string.  This feels like a more natural way of exploring the service, like running a Linux command in bash without any parameters to have it tell me what the options are.

Re: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by Sergey Beryozkin <sb...@gmail.com>.
Well, in principle, having Accept: application/vnd.sun.wadl+xml

should be enough but it's hard to do it in the browser which is a main 
'consumer' thus having a .wadl or ?wadl query is needed

Cheers, Sergey
On 08/11/17 16:56, KARR, DAVID wrote:
>> -----Original Message-----
>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>> Sent: Tuesday, November 07, 2017 3:07 PM
>> To: users@cxf.apache.org
>> Subject: Re: How to generate WADL on "root" of controller, not just with
>> "?_wadl"?
>>
>> Can you try a breakpoint at
>>
>> https://urldefense.proofpoint.com/v2/url?u=https-
>> 3A__github.com_apache_cxf_blob_master_rt_frontend_jaxrs_src_main_java_or
>> g_apache_cxf_jaxrs_impl_RequestPreprocessor.java-23L111&d=DwICaQ&c=LFYZ-
>> o9_HUMeMTSQicvjIg&r=OsTemSXEn-
>> xy2uk0vYF_EA&m=TIOLNb851DZraIfg7Tp6grZ49Sz6DcznHxbu3aWxDpA&s=8XehshxT4pC
>> MwtkDCMs1HGTx55e768vfuTaHng0WRCg&e=
>>
>> ?
> 
> Ah, I figured something out.
> 
> The normal way to get the wadl would have required this URL:
> 
>      http://localhost:8080/combinedAtgUslMonitorService?_wadl
> 
> Using the extension mapping approach requires this URL:
> 
>      http://localhost:8080/combinedAtgUslMonitorService/controller.wadl
> 
> Until now, I wasn't adding "/controller" to the URL in my test.
> 
> 
> Now that this is working, I'd like to experiment with other options.  For instance, how can I make accessing the following URL give me the WADL?
> 
>      http://localhost:8080/combinedAtgUslMonitorService/controller
> 
>> On 07/11/17 17:52, KARR, DAVID wrote:
>>>> -----Original Message-----
>>>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>>>> Sent: Tuesday, November 07, 2017 9:17 AM
>>>> To: users@cxf.apache.org
>>>> Subject: Re: How to generate WADL on "root" of controller, not just
>>>> with "?_wadl"?
>>>>
>>>> Try
>>>> application/vnd.sun.wadl+xml
>>>> please.
>>>
>>> Changed the entry to:
>>> -------
>>>       <entry key="wadl" value="application/vnd.sun.wadl+xml" />
>>> --------
>>>
>>> Still doesn't work.
>> 'http://localhost:8080/combinedAtgUslMonitorService.wadl' still gets
>> 404.  Changing ".wadl" to "?_wadl" works.
>>>
>>>> On 07/11/17 16:43, KARR, DAVID wrote:
>>>>>> -----Original Message-----
>>>>>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>>>>>> Sent: Tuesday, November 07, 2017 3:16 AM
>>>>>> To: users@cxf.apache.org
>>>>>> Subject: Re: How to generate WADL on "root" of controller, not just
>>>>>> with "?_wadl"?
>>>>>>
>>>>>> Hi David
>>>>>>
>>>>>> I looked at the code, I think you can add a '.wadl' to the path
>>>>>> instead
>>>>>> - and for this to work at the server it requires an
>>>>>> extensionMappings map property to have a "wadl":"application/wadl"
>>>>>> pair
>>>>>
>>>>> If that could work, it's still not quite what I'm looking for, but
>>>>> it
>>>> would be marginally better.  However, it doesn't appear to work.
>>>>>
>>>>> I changed my extensionMappings block to this:
>>>>> -------------
>>>>> 	   <jaxrs:extensionMappings>
>>>>>                <entry key="json" value="application/json" />
>>>>>                <entry key="xml" value="application/xml" />
>>>>>                <entry key="wadl" value="application/wadl" />
>>>>> 	   </jaxrs:extensionMappings>
>>>>> -------------
>>>>>
>>>>> I restarted the app.
>>>>>
>>>>> I ran "curl
>>>> 'http://localhost:8080/combinedAtgUslMonitorService.wadl'", which
>>>> returned a 404.
>>>>>
>>>>> I retested the normal "curl
>>>> 'http://localhost:8080/combinedAtgUslMonitorService/?_wadl&_type=json
>>>> '",
>>>> and that worked fine.
>>>>>
>>>>>> On 06/11/17 22:54, KARR, DAVID wrote:
>>>>>>> I managed to add the 'cxf-rt-rs-service-description' artifact to
>>>>>>> my
>>>>>> build, so that I get the WADL when I add "?_wadl" to my URL.  I'd
>>>>>> actually like to make it return the WADL when I just try to access
>>>>>> the "root" of the controller, without having to add the "?_wadl"
>>>> string.
>>>>>> This feels like a more natural way of exploring the service, like
>>>>>> running a Linux command in bash without any parameters to have it
>>>>>> tell me what the options are.
>>>>>>>

RE: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by "KARR, DAVID" <dk...@att.com>.
> -----Original Message-----
> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
> Sent: Tuesday, November 07, 2017 3:07 PM
> To: users@cxf.apache.org
> Subject: Re: How to generate WADL on "root" of controller, not just with
> "?_wadl"?
> 
> Can you try a breakpoint at
> 
> https://urldefense.proofpoint.com/v2/url?u=https-
> 3A__github.com_apache_cxf_blob_master_rt_frontend_jaxrs_src_main_java_or
> g_apache_cxf_jaxrs_impl_RequestPreprocessor.java-23L111&d=DwICaQ&c=LFYZ-
> o9_HUMeMTSQicvjIg&r=OsTemSXEn-
> xy2uk0vYF_EA&m=TIOLNb851DZraIfg7Tp6grZ49Sz6DcznHxbu3aWxDpA&s=8XehshxT4pC
> MwtkDCMs1HGTx55e768vfuTaHng0WRCg&e=
> 
> ?

Ah, I figured something out.

The normal way to get the wadl would have required this URL:

    http://localhost:8080/combinedAtgUslMonitorService?_wadl

Using the extension mapping approach requires this URL:

    http://localhost:8080/combinedAtgUslMonitorService/controller.wadl 

Until now, I wasn't adding "/controller" to the URL in my test.


Now that this is working, I'd like to experiment with other options.  For instance, how can I make accessing the following URL give me the WADL?

    http://localhost:8080/combinedAtgUslMonitorService/controller 

> On 07/11/17 17:52, KARR, DAVID wrote:
> >> -----Original Message-----
> >> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
> >> Sent: Tuesday, November 07, 2017 9:17 AM
> >> To: users@cxf.apache.org
> >> Subject: Re: How to generate WADL on "root" of controller, not just
> >> with "?_wadl"?
> >>
> >> Try
> >> application/vnd.sun.wadl+xml
> >> please.
> >
> > Changed the entry to:
> > -------
> >      <entry key="wadl" value="application/vnd.sun.wadl+xml" />
> > --------
> >
> > Still doesn't work.
> 'http://localhost:8080/combinedAtgUslMonitorService.wadl' still gets
> 404.  Changing ".wadl" to "?_wadl" works.
> >
> >> On 07/11/17 16:43, KARR, DAVID wrote:
> >>>> -----Original Message-----
> >>>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
> >>>> Sent: Tuesday, November 07, 2017 3:16 AM
> >>>> To: users@cxf.apache.org
> >>>> Subject: Re: How to generate WADL on "root" of controller, not just
> >>>> with "?_wadl"?
> >>>>
> >>>> Hi David
> >>>>
> >>>> I looked at the code, I think you can add a '.wadl' to the path
> >>>> instead
> >>>> - and for this to work at the server it requires an
> >>>> extensionMappings map property to have a "wadl":"application/wadl"
> >>>> pair
> >>>
> >>> If that could work, it's still not quite what I'm looking for, but
> >>> it
> >> would be marginally better.  However, it doesn't appear to work.
> >>>
> >>> I changed my extensionMappings block to this:
> >>> -------------
> >>> 	   <jaxrs:extensionMappings>
> >>>               <entry key="json" value="application/json" />
> >>>               <entry key="xml" value="application/xml" />
> >>>               <entry key="wadl" value="application/wadl" />
> >>> 	   </jaxrs:extensionMappings>
> >>> -------------
> >>>
> >>> I restarted the app.
> >>>
> >>> I ran "curl
> >> 'http://localhost:8080/combinedAtgUslMonitorService.wadl'", which
> >> returned a 404.
> >>>
> >>> I retested the normal "curl
> >> 'http://localhost:8080/combinedAtgUslMonitorService/?_wadl&_type=json
> >> '",
> >> and that worked fine.
> >>>
> >>>> On 06/11/17 22:54, KARR, DAVID wrote:
> >>>>> I managed to add the 'cxf-rt-rs-service-description' artifact to
> >>>>> my
> >>>> build, so that I get the WADL when I add "?_wadl" to my URL.  I'd
> >>>> actually like to make it return the WADL when I just try to access
> >>>> the "root" of the controller, without having to add the "?_wadl"
> >> string.
> >>>> This feels like a more natural way of exploring the service, like
> >>>> running a Linux command in bash without any parameters to have it
> >>>> tell me what the options are.
> >>>>>

Re: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by Sergey Beryozkin <sb...@gmail.com>.
Can you try a breakpoint at

https://github.com/apache/cxf/blob/master/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/RequestPreprocessor.java#L111

?

I'll try to get a test done (unless it's already there) in the next few days

Sergey

On 07/11/17 17:52, KARR, DAVID wrote:
>> -----Original Message-----
>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>> Sent: Tuesday, November 07, 2017 9:17 AM
>> To: users@cxf.apache.org
>> Subject: Re: How to generate WADL on "root" of controller, not just with
>> "?_wadl"?
>>
>> Try
>> application/vnd.sun.wadl+xml
>> please.
> 
> Changed the entry to:
> -------
>      <entry key="wadl" value="application/vnd.sun.wadl+xml" />
> --------
> 
> Still doesn't work.  'http://localhost:8080/combinedAtgUslMonitorService.wadl' still gets 404.  Changing ".wadl" to "?_wadl" works.
> 
>> On 07/11/17 16:43, KARR, DAVID wrote:
>>>> -----Original Message-----
>>>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>>>> Sent: Tuesday, November 07, 2017 3:16 AM
>>>> To: users@cxf.apache.org
>>>> Subject: Re: How to generate WADL on "root" of controller, not just
>>>> with "?_wadl"?
>>>>
>>>> Hi David
>>>>
>>>> I looked at the code, I think you can add a '.wadl' to the path
>>>> instead
>>>> - and for this to work at the server it requires an extensionMappings
>>>> map property to have a "wadl":"application/wadl" pair
>>>
>>> If that could work, it's still not quite what I'm looking for, but it
>> would be marginally better.  However, it doesn't appear to work.
>>>
>>> I changed my extensionMappings block to this:
>>> -------------
>>> 	   <jaxrs:extensionMappings>
>>>               <entry key="json" value="application/json" />
>>>               <entry key="xml" value="application/xml" />
>>>               <entry key="wadl" value="application/wadl" />
>>> 	   </jaxrs:extensionMappings>
>>> -------------
>>>
>>> I restarted the app.
>>>
>>> I ran "curl
>> 'http://localhost:8080/combinedAtgUslMonitorService.wadl'", which
>> returned a 404.
>>>
>>> I retested the normal "curl
>> 'http://localhost:8080/combinedAtgUslMonitorService/?_wadl&_type=json'",
>> and that worked fine.
>>>
>>>> On 06/11/17 22:54, KARR, DAVID wrote:
>>>>> I managed to add the 'cxf-rt-rs-service-description' artifact to my
>>>> build, so that I get the WADL when I add "?_wadl" to my URL.  I'd
>>>> actually like to make it return the WADL when I just try to access
>>>> the "root" of the controller, without having to add the "?_wadl"
>> string.
>>>> This feels like a more natural way of exploring the service, like
>>>> running a Linux command in bash without any parameters to have it
>>>> tell me what the options are.
>>>>>

RE: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by "KARR, DAVID" <dk...@att.com>.
> -----Original Message-----
> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
> Sent: Tuesday, November 07, 2017 9:17 AM
> To: users@cxf.apache.org
> Subject: Re: How to generate WADL on "root" of controller, not just with
> "?_wadl"?
> 
> Try
> application/vnd.sun.wadl+xml
> please.

Changed the entry to:
-------
    <entry key="wadl" value="application/vnd.sun.wadl+xml" />
--------

Still doesn't work.  'http://localhost:8080/combinedAtgUslMonitorService.wadl' still gets 404.  Changing ".wadl" to "?_wadl" works.

> On 07/11/17 16:43, KARR, DAVID wrote:
> >> -----Original Message-----
> >> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
> >> Sent: Tuesday, November 07, 2017 3:16 AM
> >> To: users@cxf.apache.org
> >> Subject: Re: How to generate WADL on "root" of controller, not just
> >> with "?_wadl"?
> >>
> >> Hi David
> >>
> >> I looked at the code, I think you can add a '.wadl' to the path
> >> instead
> >> - and for this to work at the server it requires an extensionMappings
> >> map property to have a "wadl":"application/wadl" pair
> >
> > If that could work, it's still not quite what I'm looking for, but it
> would be marginally better.  However, it doesn't appear to work.
> >
> > I changed my extensionMappings block to this:
> > -------------
> > 	   <jaxrs:extensionMappings>
> >              <entry key="json" value="application/json" />
> >              <entry key="xml" value="application/xml" />
> >              <entry key="wadl" value="application/wadl" />
> > 	   </jaxrs:extensionMappings>
> > -------------
> >
> > I restarted the app.
> >
> > I ran "curl
> 'http://localhost:8080/combinedAtgUslMonitorService.wadl'", which
> returned a 404.
> >
> > I retested the normal "curl
> 'http://localhost:8080/combinedAtgUslMonitorService/?_wadl&_type=json'",
> and that worked fine.
> >
> >> On 06/11/17 22:54, KARR, DAVID wrote:
> >>> I managed to add the 'cxf-rt-rs-service-description' artifact to my
> >> build, so that I get the WADL when I add "?_wadl" to my URL.  I'd
> >> actually like to make it return the WADL when I just try to access
> >> the "root" of the controller, without having to add the "?_wadl"
> string.
> >> This feels like a more natural way of exploring the service, like
> >> running a Linux command in bash without any parameters to have it
> >> tell me what the options are.
> >>>

Re: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by Sergey Beryozkin <sb...@gmail.com>.
Try
application/vnd.sun.wadl+xml
please.

Sergey
On 07/11/17 16:43, KARR, DAVID wrote:
>> -----Original Message-----
>> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
>> Sent: Tuesday, November 07, 2017 3:16 AM
>> To: users@cxf.apache.org
>> Subject: Re: How to generate WADL on "root" of controller, not just with
>> "?_wadl"?
>>
>> Hi David
>>
>> I looked at the code, I think you can add a '.wadl' to the path instead
>> - and for this to work at the server it requires an extensionMappings
>> map property to have a "wadl":"application/wadl" pair
> 
> If that could work, it's still not quite what I'm looking for, but it would be marginally better.  However, it doesn't appear to work.
> 
> I changed my extensionMappings block to this:
> -------------
> 	   <jaxrs:extensionMappings>
>              <entry key="json" value="application/json" />
>              <entry key="xml" value="application/xml" />
>              <entry key="wadl" value="application/wadl" />
> 	   </jaxrs:extensionMappings>
> -------------
> 
> I restarted the app.
> 
> I ran "curl 'http://localhost:8080/combinedAtgUslMonitorService.wadl'", which returned a 404.
> 
> I retested the normal "curl 'http://localhost:8080/combinedAtgUslMonitorService/?_wadl&_type=json'", and that worked fine.
> 
>> On 06/11/17 22:54, KARR, DAVID wrote:
>>> I managed to add the 'cxf-rt-rs-service-description' artifact to my
>> build, so that I get the WADL when I add "?_wadl" to my URL.  I'd
>> actually like to make it return the WADL when I just try to access the
>> "root" of the controller, without having to add the "?_wadl" string.
>> This feels like a more natural way of exploring the service, like
>> running a Linux command in bash without any parameters to have it tell
>> me what the options are.
>>>

RE: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by "KARR, DAVID" <dk...@att.com>.
> -----Original Message-----
> From: Sergey Beryozkin [mailto:sberyozkin@gmail.com]
> Sent: Tuesday, November 07, 2017 3:16 AM
> To: users@cxf.apache.org
> Subject: Re: How to generate WADL on "root" of controller, not just with
> "?_wadl"?
> 
> Hi David
> 
> I looked at the code, I think you can add a '.wadl' to the path instead
> - and for this to work at the server it requires an extensionMappings
> map property to have a "wadl":"application/wadl" pair

If that could work, it's still not quite what I'm looking for, but it would be marginally better.  However, it doesn't appear to work.

I changed my extensionMappings block to this:
-------------
	   <jaxrs:extensionMappings>
            <entry key="json" value="application/json" />
            <entry key="xml" value="application/xml" />
            <entry key="wadl" value="application/wadl" />
	   </jaxrs:extensionMappings>
-------------

I restarted the app.

I ran "curl 'http://localhost:8080/combinedAtgUslMonitorService.wadl'", which returned a 404.

I retested the normal "curl 'http://localhost:8080/combinedAtgUslMonitorService/?_wadl&_type=json'", and that worked fine.

> On 06/11/17 22:54, KARR, DAVID wrote:
> > I managed to add the 'cxf-rt-rs-service-description' artifact to my
> build, so that I get the WADL when I add "?_wadl" to my URL.  I'd
> actually like to make it return the WADL when I just try to access the
> "root" of the controller, without having to add the "?_wadl" string.
> This feels like a more natural way of exploring the service, like
> running a Linux command in bash without any parameters to have it tell
> me what the options are.
> >

Re: How to generate WADL on "root" of controller, not just with "?_wadl"?

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi David

I looked at the code, I think you can add a '.wadl' to the path instead 
- and for this to work at the server it requires an extensionMappings 
map property to have a "wadl":"application/wadl" pair

Sergey
On 06/11/17 22:54, KARR, DAVID wrote:
> I managed to add the 'cxf-rt-rs-service-description' artifact to my build, so that I get the WADL when I add "?_wadl" to my URL.  I'd actually like to make it return the WADL when I just try to access the "root" of the controller, without having to add the "?_wadl" string.  This feels like a more natural way of exploring the service, like running a Linux command in bash without any parameters to have it tell me what the options are.
>