Решение ошибки java.lang.NoClassDefFoundError: javax/el/ELManager, когда Springboot запускается с внешним котом в идее
Решение ошибки java.lang.NoClassDefFoundError: javax/el/ELManager, когда Springboot запускается с внешним котом в идее

По идее, при запуске Springboot обычно используется встроенный tomcat. Конечно, модифицировать некоторые конфигурации tomcat не очень удобно, но при обращении к внешнему tomcat возникнет много проблем, из-за которых проект будет зависать. не запускается, а это значит, что существует много возможностей. В этой статье описаны наиболее вероятные причины. Я надеюсь, что она может помочь всем, а также послужит напоминанием. Поскольку я потратил на эту проблему целый день, у меня слишком мало опыта, и я взял много. объезды, надеюсь, это поможет. Пожалуйста, избегайте объездов~

Во-первых, нам нужно исключить некоторые проблемы низкого уровня.
1. Соответствующие изменения в pom-файле

(1) Измените метод упаковки на военный.

Язык кода:javascript
копировать
<packaging>war</packaging>

(2) Закомментируйте/удалит исходный плагин Spring-boot-maven-plugin и измените его на следующее:

Язык кода:javascript
копировать
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

(3) Вместо этого используйте внешний Tomcat для добавления SpringBootServletInitializer должен полагаться на javax.servlet, и этот javax.servlet есть в tomcat-embed-core под tomcat-embed-jasper. Если предоставленный параметр не используется, финальная война будет иметь jar servlet-api, поэтому он будет. конфликтует с самим котом. Еще одним ключевым моментом является то, что необходимо указать область видимости в tomcat-embed-jasper.

Язык кода:javascript
копировать
		<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>

(4) Если в настоящее время для некоторых тегов в файле pom появляется сообщение об ошибке, и после подтверждения правильности написания сообщение все еще остается, вы можете скопировать и вставить его в блокнот, удалить все пробелы, а затем обрежьте его. Во многих случаях проблему можно решить. Это связано с тем, что иногда некоторые символы не отображаются и т. д., что приводит к ошибкам.

2. Изменение класса запуска
Язык кода:javascript
копировать
@SpringBootApplication
@MapperScan("net.sp.mapper")
public class SaleProApplication  extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpApplication.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(SpApplication.class,args);
    }
}
Выделение: ошибка java.lang.NoClassDefFoundError: решение javax/el/ELManager

Это вызвано конфликтами пакетов jar или отсутствием после переключения на внешний tomcat. Среди них ElManager был представлен в el-api3.0. Это можно решить, используя вместо этого tomcat8, или вы можете повторно загрузить el-api3.0.jar. и поместите Просто поместите это в jdk или просто tomcat/lib

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода