[ https://issues.apache.org/jira/browse/CXF-8943?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andriy Redko updated CXF-8943: ------------------------------ Affects Version/s: (was: 4.0.3) > Adding a listener for Container events is not working on Jetty 9 > ---------------------------------------------------------------- > > Key: CXF-8943 > URL: https://issues.apache.org/jira/browse/CXF-8943 > Project: CXF > Issue Type: Bug > Affects Versions: 3.6.2 > Environment: Spring Boot 2.7 > Camel 3.21.1 > CXF 3.6.2 > Reporter: Ruslan Hryn > Assignee: Andriy Redko > Priority: Critical > Fix For: 3.6.3, 4.0.4 > > Attachments: Screenshot from 2023-10-10 20-01-23.png > > > Adding a listener for Container events is not working on Jetty 9 > For example. > Add listener using JettyHTTPServerEngine > {code:java} > @Bean > public JettyHTTPServerEngineFactory jettyHTTPServerEngineFactory() { > JettyHTTPServerEngineFactory engineFactory = new > JettyHTTPServerEngineFactory(); > JettyHTTPServerEngine engine = new JettyHTTPServerEngine( > new Container.Listener() { > @Override > public void beanAdded(Container parent, Object child) { > // > } > @Override > public void beanRemoved(Container parent, Object child) { > // > } > }, > "localhost", > 8080); > engineFactory.setEnginesList(Collections.singletonList(engine)); > return engineFactory; > }{code} > The JettyHTTPServerEngine can't add this listener after the start of the > server > because Server class does not implement addEventListener method directly, > this method comes from the parent class. > Therefore > ReflectionUtil.getDeclaredMethods(container.getClass()) does not return the > method addEventListener because this call does not consider methods from > parent classes. > > The issue was caused by this commit > [https://github.com/apache/cxf/commit/2ff109358027653d1afd6f252cf6f25048cafbb9] > !Screenshot from 2023-10-10 20-01-23.png! > -- This message was sent by Atlassian Jira (v8.20.10#820010)