Реализация WebApplicationInitializer не загружена из библиотеки JAR - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть следующая структура проекта:

root
|---- web_1 (war)
|
|---- web_2 (war)
|
|---- common-security (jar)
|
|---- ear_1 (war_1 + common-security)
|
|---- ear_2 (war_2 + common-security)

В этом common-security я добавил зависимость org.springframework:spring-web:5.0.9.RELEASE.

Это примерреализация WebApplicationInitializer, представленная в common-security :

import javax.servlet.ServletContext;
import javax.servlet.ServletException;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.web.WebApplicationInitializer;

public class MySecureWebApplicationInitializer implements WebApplicationInitializer {

    private final Logger logger = LogManager.getLogger(getClass());

    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        logger.info("m");
    }
}

Каждый ear содержит файл war и общая безопасность баночка.Кувшин common-security добавлен в Class-Path в META-INF/MANIFEST.MF модуля war .Каждый файл war содержит web.xml, а моя версия сервлета 3.1.

Когда я попадаю на целевую страницу, я вижу:

No Spring WebApplicationInitializer types detected on classpath

Но если я продублирую реализацию WebApplicationInitializer в любом модуле war и уберу зависимость common-security , из этого модуля я обнаружу, что он обнаруживает один WebApplicationInitializer и регистрируетназначенное сообщение.

Мне нужен один общий модуль пружины и безопасности, который будет использоваться двумя разными войнами.

Любой указатель будет хорош.

...