Hi Sergey,
the annotation that is responsible for the failure is the
@Path("/PubDocs.json")
Removing it the endPoint works fine.
All the annotations used in the class are the following :
@Path("/PubDocs.json")
@Api(value = "/PubDocs", description = "Operations about pubDocs")
@Produces({"application/json"})
public class RestPublicDocsJSON extends RestPublicDocs{}
Thanks,
Andrea
Date: Tue, 4 Jun 2013 02:13:05 -0700
From: [email protected]
To: [email protected]
Subject: Re: CXF and swagger
Hi
On 03/06/13 16:32, eanbiso wrote:
> Hi all,
> I'm trying to publish and use cxf rest endPoint adding annotations required
> to use the framework com.wordnik.swagger
> I tried to follow the example at
> https://github.com/wordnik/swagger-core/tree/master/samples/java-jaxrs-cxf/src/main/java/com/wordnik/swagger/sample
> with some differences: I must publish the endPoint directly from java code.
> My situatios is the following...
>
> I have an endPoint with a simple interface like this:
>
> @WebService(targetNamespace = http://com.prova.pubdocs/)
> public interface IPublic extends IPublishable{
>
> @GET
> @Path("/isReady")
> @ApiOperation(value = "Check the instance is ready or not", notes =
> "Returns a boolean corresponding to the instance state.", responseClass =
> "boolean")
> boolean isReady();
>
> }
> (the interface IPublishable specifies only the methods to publish and
> unpublish the endPoints),
>
> and an implementor like this:
> @WebService("RestServicePubDocs", "PubDocs")
> public class RestPublicDocs implements IPublic, IPlat1Service {
>
> @Override
> public boolean isReady() {
> return true;
> }
> ....
> }
>
> Following the example I've also daclared the class:
>
> @Path("/PubDocs.json")
> @Api(value = "/PubDocs", description = "Operations about pubDocs")
> @Produces({"application/json"})
> public class RestPublicDocsJSON extends RestPublicDocs{}
>
> and then I've published the end point in a similar way:
>
> private Server publishRestServerSwagger(String addr,
> List<Interceptor<? extends Message>> inInterceptors,
> List<Interceptor<? extends Message>>
> outInterceptors){
> Server simpl=null;
> try {
> JAXRSServerFactoryBean sf = new
> JAXRSServerFactoryBean();
> sf.setServiceBean(new RestPublicDocsJSON()); //the
> implementor
> sf.setServiceBean(new ApiListingResourceJSON());
> //required from swagger
> sf.setAddress(addr);
> sf.setProvider(new JacksonJsonProvider()); //required
> from swagger
> sf.setProvider(new RestExceptionHandler()); //my
> exception mapper
>
> if (inInterceptors != null) {
> for (Interceptor<? extends Message> interceptor
> : inInterceptors) {
> sf.getInInterceptors().add(interceptor);
> }
> }
> if (outInterceptors != null) {
> for (Interceptor<? extends Message> interceptor
> : outInterceptors) {
>
> sf.getOutInterceptors().add(interceptor);
> }
> }
>
> //add new rest fault interceptor
> sf.getOutFaultInterceptors().add(new
> RestFaultInterceptor());
> //new management end
> simpl = sf.create();
> //disable honorKeepAlive value depending on VMArg
> (honorKeepAlive default
> value is true)
> log.info("Endpoint has been published on " + addr);
> } catch (Exception e) {
> log.warn("Error publishing endpoint: " + e.toString(),
> e);
> }
>
> return simpl;
> }
>
>
> The publication seems to be successful and no exception occurs but when I
> call the ws, a javax.ws.rs.WebApplicationException with status 404 and all
> values null occurs.
> If I remove the annotations from the RestPublicDocsJSON class the api works
> properly and no exception occurs.
> Someone can help me?
I can't see what may be going wrong from the code above.
In this fragment,
> @Path("/PubDocs.json")
> @Api(value = "/PubDocs", description = "Operations about pubDocs")
> @Produces({"application/json"})
> public class RestPublicDocsJSON extends RestPublicDocs{}
which annotations affect the api working properly ? Are these
annotations the only ones on RestPublicDocsJSON ?
Sergey
> Thanks a lot,
>
> Andrea
>
>
>
> --
> View this message in context:
> http://cxf.547215.n5.nabble.com/CXF-and-swagger-tp5728644.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
If you reply to this email, your message will be added to the
discussion below:
http://cxf.547215.n5.nabble.com/CXF-and-swagger-tp5728644p5728690.html
To unsubscribe from CXF and swagger, click here.
NAML
--
View this message in context:
http://cxf.547215.n5.nabble.com/CXF-and-swagger-tp5728644p5728720.html
Sent from the cxf-user mailing list archive at Nabble.com.