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