Hi
On 20/11/13 21:30, Jason Wang wrote:
Hi all,

I am working on a bunch of Restful services at the moment. I would like
them to have a common root which is /rsservice/*.

One of my server setting is like this:

<jaxrs:server id="protectedServers" address="/rsservice/v1/">
         <jaxrs:serviceBeans>
             <ref bean="accountRS"/>
         </jaxrs:serviceBeans>
         <jaxrs:providers>
             <ref bean="finzOAuthRequestFilter"/>
         </jaxrs:providers>
     </jaxrs:server>

So I would expect they appear under

http://mydomain.com/myapp/rsservice/v1/*

However, it somehow magically appeared under

http://mydomain.com/myapp/wsservice/rsservice/v1/*

I could not figure out how the root got changed to wsservice. Thats the
root I use for soap web services, I did not expect that would affect my
jax-rs servers.

Any idea how to fix?

My web.xml:

<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
         <url-pattern>/rsservice/*</url-pattern>
         <url-pattern>/wsservice/*</url-pattern>
</servlet-mapping>


I think it is the first time I see a multiple URL pattern in action :-).
FYI, JAX-RS will accumulate servlet pattern and jaxrs;address, see
http://cxf.apache.org/docs/jax-rs.html#JAX-RS-HowRequestURIisMatched

You can have a single CXF servlet listening on * and jaxws - on /wsservice and jaxrs - on /rsservice, this will give you what you expect, or have two CXF servlets, one - on /rsservice, another one - on /wsservice

Another question is, is there a way to list all jax-rs service urls? I used
Enunciate for documenting my soap APIs which actually servers this purpose
but I am just courious if there is a standard way to do this..
I know users do some work with Enunciate, Swagger feature has been added, WADL auto-gen is available
Sergey

Thanks
Jason



--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to