Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何使用Swagger定义多个Camel Rest DSL_Spring Boot_Java 8_Apache Camel_Swagger - Fatal编程技术网

Spring boot 如何使用Swagger定义多个Camel Rest DSL

Spring boot 如何使用Swagger定义多个Camel Rest DSL,spring-boot,java-8,apache-camel,swagger,Spring Boot,Java 8,Apache Camel,Swagger,我在一个spring引导应用程序中使用了Camel 2.16.0和Camel-netty4-http、Camel-swagger java和Camel-spring引导。我的SpringBootRouter按以下方式配置: public void configure() { restConfiguration() .component("netty4-http") .bindingMode(RestBindingMode.json) .dataFormat

我在一个spring引导应用程序中使用了Camel 2.16.0和Camel-netty4-http、Camel-swagger java和Camel-spring引导。我的SpringBootRouter按以下方式配置:

   public void configure() {

    restConfiguration()
    .component("netty4-http")
    .bindingMode(RestBindingMode.json)
    .dataFormatProperty("prettyPrint", "true")
    .host("0.0.0.0")
    .contextPath("/")
    .port(port)
    .apiContextPath("/api-doc")
         .apiProperty("api.title", "User API")
         .apiProperty("api.version", "1.2.3")
         .apiProperty("cors", "true");

    rest("/hello").description("Say hello.")
    .produces("application/json")
    .get().description("Get hello.").route().transform(constant("hello"));

    rest("/hi").description("Say hi.")
    .produces("application/json")
    .get().description("Get hi.").route().transform(constant("hi"));
}
如何使用Swagger获得多个rest定义?上面的配置只提供了下面的例外。然而,如果我删除了其他rest定义rest(“/hi”),那么Swagger就可以正常工作了

例外情况:

java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springframework.boot.maven.RunMojo$LaunchRunner.run(RunMojo.java:423)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.apache.camel.spring.boot.CamelSpringBootInitializationException: org.apache.camel.FailedToStartRouteException: Failed to start route route4 because of Multiple consumers for the same endpoint is not allowed: Endpoint[http://0.0.0.0:10000/api-doc?httpMethodRestrict=GET]
    at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:81)
    at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:37)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:151)
    at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:128)
    at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:331)
    at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:775)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:139)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:483)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:117)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:689)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
    at org.apache.camel.spring.boot.FatJarRouter.main(FatJarRouter.java:26)
    ... 6 more
Caused by: org.apache.camel.FailedToStartRouteException: Failed to start route route4 because of Multiple consumers for the same endpoint is not allowed: Endpoint[http://0.0.0.0:10000/api-doc?httpMethodRestrict=GET]
    at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRouteConsumers(DefaultCamelContext.java:3473)
    at org.apache.camel.impl.DefaultCamelContext.doStartRouteConsumers(DefaultCamelContext.java:3449)
    at org.apache.camel.impl.DefaultCamelContext.safelyStartRouteServices(DefaultCamelContext.java:3379)
    at org.apache.camel.impl.DefaultCamelContext.doStartOrResumeRoutes(DefaultCamelContext.java:3147)
    at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3003)
    at org.apache.camel.impl.DefaultCamelContext.access$000(DefaultCamelContext.java:172)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2799)
    at org.apache.camel.impl.DefaultCamelContext$2.call(DefaultCamelContext.java:2795)
    at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:2818)
    at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:2795)
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:61)
    at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2764)
    at org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:79)
    ... 17 more

是的,这是Apache Camel中的一个bug。我已经登记了一张票:


可能是驼峰弹簧靴的问题。您能否将您的示例项目作为ZIP附加到CAMEL jira票证上,以便我们可以从中复制?或者把一个项目放在github上或者其他什么?我发布到了Jira票证上,这里还有github示例项目的链接: