Мне известно, что в StackOverflow существует множество похожих вопросов, но, думаю, я просмотрел каждый из них и попробовал все предложенные, но ни один из них не сработал.
Я пытаюсь выполнить миграцию приложение от распорок 1 до распорок 2 , но для упрощения я пытаюсь сначала перенести примеры приложений struts1, чтобы убедиться в правильности шагов. Примеры приложений, о которых я говорю, находятся в папке apps этого хранилища .
Итак, это моя текущая конфигурация:
- maven
- Java 8
- Tomcat 9
- Распорки 1,4
- Распорки 2,5
Ступени До сих пор я делал:
- Добавление struts2-core и log4j2 зависимостей в pom. xml файл и установите их через maven
- Измените файл web. xml, чтобы включить распорки 2, согласно официальной документации .
- Создайте Struts. xml файл в classpath, в настоящее время этот файл не содержит никаких действий, а только структуру.
Вышеупомянутые файлы выглядят так:
веб. xml (выдержка) :
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
распорок. xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="true"/>
<package name="default" namespace="/" extends="struts-default">
</package>
<!-- Add addition packages and configuration here. -->
</struts>
пом. xml (выдержка) :
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.22</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.12.1</version>
</dependency>
В конце концов, мав Раздел зависимостей выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/vbp1O.png)
В то время как папка WEB-INF / lib в target папка выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/Mr09H.png)
Так что я уверен, что в цели присутствуют все необходимые зависимости. Несмотря на это, я продолжаю получать сообщение об ошибке:
org. apache .catalina.core.StandardContext filterStart SEVERE: Фильтр запуска исключения [struts2] java .lang.ClassNotFoundException: org. apache .struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
Я уверен, что класс org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
существует, он записан правильно и подходит для используемой версии Struts2, так как если я импортируйте класс в файл Java, он успешно собран.
Я знаю, что проблема очень распространена, и мой запрос может показаться глупым, но я проверил буквально любой вопрос, который я нашел в Интернете об этой проблеме, и ни одно из решений не сработало.
Я надеюсь, что кто-то может дать мне подсказку. Спасибо