我正在将一个.jar
文件(基本上是一个带有web.xml
的Spring应用程序)集成到Spring Boot应用程序中。
我有一个Spring Boot应用程序的.war
文件,需要在其中部署.jar
。
我的Spring应用程序实现了一些上下文监听器,这些监听器已在web.xml
中注册,我想在Spring Boot App中注册。
我试图通过将web.xml
放在WEB-INF文件夹中来运行Spring Boot应用程序,但是最终它会覆盖整个项目配置。它允许侦听器初始化,但不能运行war
文件。
删除/不使用web.xml
导致运行Spring Boot war
文件,但是上下文监听器未初始化,并导致空指针异常。
web.xml
的相关部分:
<listener><listener-class>org.XXX.CustomContextListener</listener-class</listener>
...
<servlet>
<servlet-name>Log4jConfigurationServlet</servlet-name>
<servlet-class>org.XXX.Log4jConfigurationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Log4jConfigurationServlet</servlet-name>
<url-pattern>/ConfigureLog4j</url-pattern>
</servlet-mapping>
上下文监听器:
@WebListener
public final class CustomContextListener implements ServletContextListener
{
@SuppressWarnings("unused")
@Override
public void contextIntialized(ServletContextEvent servletContextEvent){}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {}
}
是否可以在不覆盖任何Spring Boot配置的情况下将我的侦听器注册到Spring Boot应用程序或将web.xml用于jar文件中的jar文件?