Hi, Did you find any solution to this? As I'm faced with a similar problem?
I'm trying to setup swagger with the rest dsl and camel-jetty but there appears to be no way to plug them together. Am I missing something or is this camel-swagger component only intended for traditional web applications (with a web.xml)? As far as I can see the camel-swagger essentially provides a servlet that discovers the api from the cametContext and a filter for cors. Potentially these could be programmatically wired in but I don't see any neat 'camel' solution to this. Thanks Jack On 17 October 2014 17:44, Sergey Beryozkin <sberyoz...@gmail.com> wrote: > This is a link Freeman kindly shared with me earlier on > > http://svn.apache.org/viewvc?view=revision&revision=r1537442 > > It refers to a ServiceMix demo, though I haven't tested the demo. > I guess you'd register it the same way with cxfrs > > Cheers, Sergey > > On 17/10/14 16:19, atg roxx wrote: > >> Hi Matt/Sergey, >> >> Thanks for replying. >> >> Sergey, >> >> I was not sure where and how to user your SwaggerFeature.. not sure where >> it will fit. >> >> Matt, >> >> In your approach too, could not see the use of camel cxfrs and also there >> are not camel routes to server the request. >> >> In Swagger config, could not see any resource location to search for >> resources class. >> >> Could you if possible , kindly let me know where how to use these in your >> sample program. >> >> -Regards, >> atg roxx >> >> On Fri, Oct 17, 2014 at 3:08 PM, Matt Raible <m...@raibledesigns.com> >> wrote: >> >> Here's how I did it. >>> >>> Application.java (to register Camel's servlet): >>> ---- >>> import org.apache.camel.component.servlet.CamelHttpTransportServlet; >>> import org.springframework.boot.SpringApplication; >>> import org.springframework.boot.autoconfigure.EnableAutoConfiguration; >>> import org.springframework.boot.builder.SpringApplicationBuilder; >>> import >>> org.springframework.boot.context.embedded.ConfigurableEmbeddedServletCon >>> tainer; >>> import >>> org.springframework.boot.context.embedded.EmbeddedServletContainerCustom >>> izer; >>> import org.springframework.boot.context.embedded.ErrorPage; >>> import org.springframework.boot.context.embedded. >>> ServletRegistrationBean; >>> import org.springframework.boot.context.web. >>> SpringBootServletInitializer; >>> import org.springframework.context.annotation.Bean; >>> import org.springframework.context.annotation.ComponentScan; >>> import org.springframework.context.annotation.Configuration; >>> import org.springframework.http.HttpStatus; >>> >>> @Configuration >>> @ComponentScan >>> @EnableAutoConfiguration >>> public class Application extends SpringBootServletInitializer { >>> private static final String CAMEL_URL_MAPPING = "/rest/*"; >>> private static final String CAMEL_SERVLET_NAME = "CamelServlet"; >>> >>> public static void main(String[] args) { >>> SpringApplication.run(Application.class, args); >>> } >>> >>> @Override >>> protected SpringApplicationBuilder >>> configure(SpringApplicationBuilder application) { >>> return application.sources(Application.class); >>> } >>> >>> @Bean >>> public ServletRegistrationBean servletRegistrationBean() { >>> ServletRegistrationBean registration = >>> new ServletRegistrationBean(new >>> CamelHttpTransportServlet(), CAMEL_URL_MAPPING); >>> registration.setName(CAMEL_SERVLET_NAME); >>> return registration; >>> } >>> >>> @Bean >>> public EmbeddedServletContainerCustomizer >>> containerCustomizer() { >>> return new EmbeddedServletContainerCustomizer() { >>> @Override >>> public void >>> customize(ConfigurableEmbeddedServletContainer container) { >>> ErrorPage error401Page = new >>> ErrorPage(HttpStatus.UNAUTHORIZED, "/401.html"); >>> ErrorPage error404Page = new >>> ErrorPage(HttpStatus.NOT_FOUND, "/404.html"); >>> ErrorPage error500Page = new >>> ErrorPage(HttpStatus.INTERNAL_SERVER_ERROR, "/500.html"); >>> >>> container.addErrorPages(error401Page, >>> error404Page, error500Page); >>> } >>> }; >>> } >>> } >>> >>> SwaggerConfig.java: >>> ---- >>> @Configuration >>> public class SwaggerConfig implements EnvironmentAware { >>> >>> private RelaxedPropertyResolver propertyResolver; >>> >>> @Override >>> public void setEnvironment(Environment environment) { >>> this.propertyResolver = new RelaxedPropertyResolver( >>> environment, >>> "swagger."); >>> } >>> >>> /** >>> * Swagger Camel Configuration >>> */ >>> @Bean >>> public ServletRegistrationBean swaggerServlet() { >>> ServletRegistrationBean swagger = new >>> ServletRegistrationBean(new >>> SpringRestSwaggerApiDeclarationServlet(), "/swagger/*"); >>> Map<String, String> params = new HashMap<>(); >>> params.put("base.path", "https://localhost:8443/rest"); >>> params.put("api.title", propertyResolver.getProperty("title")); >>> params.put("api.description", >>> propertyResolver.getProperty("description")); >>> params.put("api.termsOfServiceUrl", >>> propertyResolver.getProperty("termsOfServiceUrl")); >>> params.put("api.license", propertyResolver.getProperty(" >>> license")); >>> params.put("api.licenseUrl", >>> propertyResolver.getProperty("licenseUrl")); >>> swagger.setInitParameters(params); >>> return swagger; >>> } >>> >>> } >>> >>> application.properties: >>> ---- >>> # Swagger >>> swagger.title = My API >>> swagger.description = A description. >>> swagger.termsOfServiceUrl = http://yourcompany.com/terms.html >>> swagger.contact = >>> swagger.license = Apache 2.0 >>> swagger.licenseUrl = http://www.apache.org/licenses/LICENSE-2.0.html >>> >>> Hope this helps, >>> >>> Matt >>> >>> On Fri, Oct 17, 2014 at 3:18 AM, atg roxx <atgr...@gmail.com> wrote: >>> Hi Team, >>> >>> I am using camel 2.14 and I am trying to expose rest endpoint using CXFRS >>> and want to use swagger to expose the rest api. >>> >>> >>> I am able to expose my rest service using cxfrs as described here : >>> http://camel.apache.org/cxfrs.html >>> >>> My application is not a web application, and I am using spring and spring >>> boot for my application. >>> >>> So I dont have web.xml in my case. >>> >>> Now for Integrating with Swagger, I looked at >>> http://camel.apache.org/swagger.html >>> >>> but it uses web.xml for it. >>> >>> Is there anyways we can do it without using web.xml. >>> >>> I looked at the exmple "camel-example-servlet-rest-tomcat" ( >>> http://camel.apache.org/examples.html) explaining swagger integration >>> with >>> Camel, but here too web application is used for example i.e web.xml for >>> this integration. >>> >>> >>> Could anyone suggest how can we integrate swagger without use of web.xml >>> >>> >>> -Cheers, >>> atg roxx >>> >>> >>> >>> -- >>> 720-560-8460 >>> http://raibledesigns.com >>> http://linkedin.com/in/mraible >>> >> >> >