I'm trying to monitor a REST application based on the Spring tutorial Building a RESTful Web Service but in the Java Melody documentation page the configuration depends of the web.xml file, but the spring project does not have such file. I tried by using java melody annotations and setting contextConfigLocation in the WebInitializer but when I enter to Java Melody page I can't see Spring section.
I Have my WebInitializar like this:
public class WebInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class).properties();
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
servletContext.setInitParameter("contextConfigLocation", "classpath:net/bull/javamelody/monitoring-spring.xml");
super.onStartup(servletContext);
}
}
I have set the contextConfigLocation as the Java Melody documentation said.
And my controller:
@RestController
@MonitoredWithSpring
public class GreetingController {
private static final String template = "Hello, %s!";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
}
Any advice to make it work?
There is now a documentation to monitor Spring-boot app with javamelody, including Spring beans: https://github.com/javamelody/javamelody/wiki/SpringBootStarter
You only need the javamelody dependency jar in the web application, and register two beans in spring application context:
@Bean
public HttpSessionListener javaMelodyListener(){
return new net.bull.javamelody.SessionListener();
}
@Bean
public Filter javaMelodyFilter(){
return new net.bull.javamelody.MonitoringFilter();
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With