2015-01-08 17 views
7

Sto provando a monitorare un'applicazione REST basata sul tutorial Spring Building a RESTful Web Service ma nella pagina di documentazione di Java Melody la configurazione dipende dal file web.xml, ma il progetto Spring non esegue non avere tale file. Ho provato usando le annotazioni della melodia java e impostando contextConfigLocation in WebInitializer ma quando accedo alla pagina Melody Java non riesco a vedere la sezione Spring.Controllo bean di primavera con JavaMelody nel progetto Spring-Boot

Ho il mio WebInitializar in questo modo:

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); 
} 
} 

Ho impostato il contextConfigLocation come la documentazione Java Melody detto.

E il mio 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)); 
} 
} 

Qualche consiglio per farlo funzionare?

+3

Basta aggiungere '@ImportResource (" classpath: net/bull/javamelody/monitoring-spring.xml ")' al tuo 'Application.class'. –

+1

Grazie @ M.Deinum, funziona !! – gamerkore

risposta

5

è necessario solo il vaso javamelody dipendenza nel web application, e registrare due fagioli in contesto applicativo primavera:

@Bean 
public HttpSessionListener javaMelodyListener(){ 
    return new net.bull.javamelody.SessionListener(); 
} 

@Bean 
public Filter javaMelodyFilter(){ 
    return new net.bull.javamelody.MonitoringFilter(); 
} 
Problemi correlati