On 18/10/13 19:54, Marcel Stör wrote:
On 18.10.2013 17:50, Sergey Beryozkin wrote:
Hi
On 18/10/13 13:39, Marcel Stör wrote:
Are there known limitations for the "/services" and "?_wadl" auto doc
generation features when CXF serves both JAX-WS and JAX-RS?

[Context]
- CXF 2.7.5
- *1* CXF Servlet mapped to /* in web.xml
- JAX-WS endpoints like <jaxws:endpoint id= implementor= wsdlLocation=
address="/projection/1">
- JAX-RS server like so
   <jaxrs:server id= address="/">
     <jaxrs:serviceBeans>
       <ref bean="taxV1RestService" />
- JAX-RS server like so
   @Path("/tax/v1")
   public class TaxV1RestService {
     @Path("supported-kernel-years")
     ...

[Problem]
http://server/services returns the JAX-WS service list. That comes not
unexpected.
http://server/tax/v1/services also returns the JAX-WS service list
although /tax/v1 is the root path to a JAX-RS service.
http://server/tax/v1/supported_kernel_years?_wadl does not produce the
WADL of the JAX-RS endpoint but hits our custom interceptors and returns
[#document: null] in the end.


Do I need two CXF Servlets in web.xml to have auto doc generation play
nice?

I'm thinking at the moment that the fact the addresses of both endpoints
overlap completely causes the issue, can you move "/tax" from the root
@Path to jaxrs:server/@address and have only @Path("/v1") and see what
happens ?

I changed jaxrs:server/@address from '/' to '/rest'. So, the JAX-WS
endpoints are all '/a-soap-endpoint', '/b-soap-endpoint' and so on and
the JAX-RS services are at '/rest/tax/v1', '/rest/pension/v1', etc.
However, requesting http://server/rest/services returns the JAX-WS
service list.


Right, I think that what you expect is for the services list not to show JAX-WS links when the request path covers JAX-RS endpoints and probably vice versa ?

I don't think this is possible right now, but I guess we can have some properties set at the endpoint creation time that can help the services formatter handler to filter out some of the links

I'll have a look
Sergey

Reply via email to