Hi,
I am using spring boot with camel cxf to expose rest/soap web services. However
since I have many services and some of them are not well defined, I want to
register each of them one by one, catch if any exception occurs and continue
with remaining valid services. But when I set
camel.springboot.auto-startup=false I can not manage to open cxf service again.
(Please note that timer route can be started by this way). Any solution or
suggestion ?
Thank you
Here is the code :
@Component
public class TestRoutes {
@Autowired CamelContext camelContext;
@Autowired Swagger2Feature swagger2Feature;
@PostConstruct
public void init(){
try {
camelContext.start();
} catch (Exception e1) {
e1.printStackTrace();
}
HelloResponse response = new HelloResponse();
response.setCevap("response");
List<Object> providers = new ArrayList<>();
CxfRsComponent cxfComponent = new CxfRsComponent(camelContext);
CxfRsEndpoint serviceEndpoint = new CxfRsEndpoint("/rest2", cxfComponent);
serviceEndpoint.addResourceClass(Service1.class);
serviceEndpoint.setProviders(providers);
serviceEndpoint.setSynchronous(true);
serviceEndpoint.setAddress("/rest2");
serviceEndpoint.getFeatures().add(swagger2Feature);
RouteBuilder builder = new RouteBuilder(camelContext) {
@Override
public void configure() throws Exception {
from(serviceEndpoint)
.id(Service1.class.getCanonicalName()+"rest")
.log("${header.operationName} message here")
.setBody(constant(response));
from("timer:mytimer?period=5000")
.id("timer")
.log("hi");
}
};
try {
camelContext.startRoute(Service1.class.getCanonicalName()+"rest");
camelContext.startRoute("timer");
} catch (Exception e) {
e.printStackTrace();
}
}
}
Startup log:
017-07-18 10:50:49.076 INFO 12052 --- [ main]
ationConfigEmbeddedWebApplicationContext : Refreshing
org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5149d738:
startup date [Tue Jul 18 10:50:49 EEST 2017]; root of context hierarchy
2017-07-18 10:50:52.413 INFO 12052 --- [ main]
trationDelegate$BeanPostProcessorChecker : Bean
'org.apache.camel.spring.boot.CamelAutoConfiguration' of type
[org.apache.camel.spring.boot.CamelAutoConfiguration$$EnhancerBySpringCGLIB$$5d14135]
is not eligible for getting processed by all BeanPostProcessors (for example:
not eligible for auto-proxying)
2017-07-18 10:50:53.063 INFO 12052 --- [ main]
s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s):
8080 (http)
2017-07-18 10:50:53.085 INFO 12052 --- [ main]
o.apache.catalina.core.StandardService : Starting service Tomcat
2017-07-18 10:50:53.086 INFO 12052 --- [ main]
org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache
Tomcat/8.5.11
2017-07-18 10:50:53.341 INFO 12052 --- [ost-startStop-1]
o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded
WebApplicationContext
2017-07-18 10:50:53.342 INFO 12052 --- [ost-startStop-1]
o.s.web.context.ContextLoader : Root WebApplicationContext:
initialization completed in 4269 ms
2017-07-18 10:50:53.974 INFO 12052 --- [ost-startStop-1]
o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet'
to [/]
2017-07-18 10:50:53.976 INFO 12052 --- [ost-startStop-1]
o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'CXFServlet' to
[/services/*]
2017-07-18 10:50:53.981 INFO 12052 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter:
'characterEncodingFilter' to: [/*]
2017-07-18 10:50:53.982 INFO 12052 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter:
'hiddenHttpMethodFilter' to: [/*]
2017-07-18 10:50:53.982 INFO 12052 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter:
'httpPutFormContentFilter' to: [/*]
2017-07-18 10:50:53.982 INFO 12052 --- [ost-startStop-1]
o.s.b.w.servlet.FilterRegistrationBean : Mapping filter:
'requestContextFilter' to: [/*]
2017-07-18 10:50:54.682 INFO 12052 --- [ main]
o.a.camel.spring.SpringCamelContext : Apache Camel 2.19.1 (CamelContext:
camel-1) is starting
2017-07-18 10:50:54.685 INFO 12052 --- [ main]
o.a.c.m.ManagedManagementStrategy : JMX is enabled
2017-07-18 10:50:54.999 INFO 12052 --- [ main]
o.a.c.i.converter.DefaultTypeConverter : Loaded 214 type converters
2017-07-18 10:50:55.064 INFO 12052 --- [ main]
o.a.c.i.DefaultRuntimeEndpointRegistry : Runtime endpoint registry is in
extended mode gathering usage statistics of all incoming and outgoing endpoints
(cache limit: 1000)
2017-07-18 10:50:55.094 INFO 12052 --- [ main]
o.a.camel.spring.SpringCamelContext : StreamCaching is not in use. If
using streams then its recommended to enable stream caching. See more details
at http://camel.apache.org/stream-caching.html
2017-07-18 10:50:55.095 INFO 12052 --- [ main]
o.a.camel.spring.SpringCamelContext : Total 0 routes, of which 0 are
started.
2017-07-18 10:50:55.097 INFO 12052 --- [ main]
o.a.camel.spring.SpringCamelContext : Apache Camel 2.19.1 (CamelContext:
camel-1) started in 0.415 seconds
2017-07-18 10:50:55.301 WARN 12052 --- [ main]
o.apache.cxf.jaxrs.utils.ResourceUtils : No resource methods have been found
for resource class java.lang.Class
2017-07-18 10:50:55.433 INFO 12052 --- [ main]
org.apache.cxf.endpoint.ServerImpl : Setting the server's publish address
to be /rest1
2017-07-18 10:50:55.636 INFO 12052 --- [ main]
org.reflections.Reflections : Reflections took 60 ms to scan 1
urls, producing 21 keys and 25 values
2017-07-18 10:50:56.106 INFO 12052 --- [ main]
s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice:
org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@5149d738:
startup date [Tue Jul 18 10:50:49 EEST 2017]; root of context hierarchy
2017-07-18 10:50:56.206 INFO 12052 --- [ main]
s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public
org.springframework.http.ResponseEntity<java.util.Map<java.lang.String,
java.lang.Object>>
org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2017-07-18 10:50:56.208 INFO 12052 --- [ main]
s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped
"{[/error],produces=[text/html]}" onto public
org.springframework.web.servlet.ModelAndView
org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2017-07-18 10:50:56.267 INFO 12052 --- [ main]
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto
handler of type [class
org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-18 10:50:56.267 INFO 12052 --- [ main]
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler
of type [class
org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-18 10:50:56.330 INFO 12052 --- [ main]
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico]
onto handler of type [class
org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2017-07-18 10:50:57.591 INFO 12052 --- [ main]
o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure
on startup
2017-07-18 10:50:57.686 INFO 12052 --- [ main]
s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080
(http)
2017-07-18 10:50:57.694 INFO 12052 --- [ main]
c.e.demo.AutoStartupFalseApplication : Started AutoStartupFalseApplication
in 9.057 seconds (JVM running for 9.764)
Bu e-posta'n?n i?erdi?i bilgiler (ekleri dahil olmak ?zere) gizlidir. Onay?m?z
olmaks?z?n ???nc? ki?ilere a?iklanamaz. Bu mesaj?n g?nderilmek istendi?i ki?i
de?ilseniz, l?tfen mesaj? sisteminizden derhal siliniz. IBTech A.?. bu mesaj?n
i?erdi?i bilgilerin do?rulu?u veya eksiksiz oldu?u konusunda bir garanti
vermemektedir. Bu nedenle bilgilerin ne ?ekilde olursa olsun i?eri?inden,
iletilmesinden, al?nmas?ndan, saklanmas?ndan sorumlu de?ildir. Bu mesaj?n
i?eri?i yazar?na ait olup, IBTech A.?.'nin g?r??lerini i?ermeyebilir.
The information contained in this e-mail (including any attachments)is
confidential. It must not be disclosed to any person without our authority. If
you are not the intended recipient, please delete it from your system
immediately. IBTech A.S. makes no warranty as to the accuracy or completeness
of any information contained in this message and hereby excludes any liability
of any kind for the information contained therein or for the information
transmission, reception, storage or use of such in any way whatsoever. Any
opinions expressed in this message are those of the author and may not
necessarily reflect the opinions of IBTech A.S.