2013-12-16 1 views
2

У меня есть веб-приложение, использующее Eclipse, Struts2 и работающее на Tomcat 7 Server.Struts2 <filter> и <filter-mapping>, вызывающие ошибку

Я ушел из уроков http://javabrains.koushik.org.

У меня есть все основные части Struts на месте, но по какой-то причине, когда я представляю этот фрагмент кода в web.xml.

<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
<filter-mapping> 

Это бросает книгу на меня.

SEVERE: Dispatcher initialization failed 
Unable to load configuration. - bean - 
Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean -  
Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name struts has already been loaded by bean - 
SEVERE: Exception starting filter struts2  
Unable to load configuration. - bean -  
Caused by: Unable to load configuration. - bean -  
Caused by: Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean -  
Caused by: Bean type class com.opensymphony.xwork2.ObjectFactory with the name struts has already been loaded by bean - jar:file:/C:/Program%20Files%20(x86)/Apache%20Software%20Foundation/Tomcat%207.0/lib/struts2-core-2.3.16.jar!/struts-default.xml:40:72 
- bean - 

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

+0

требуется дополнительная информация. опубликуйте весь web.xml и struts.xml – Jaiwo99

+0

** Я получаю ту же ошибку. Но если я запускаю ту же программу в MyEclipse. Это работает. Я думаю, что это может быть проблема с классом Path. но не уверен.** – Prasanna

ответ

2

Ничего. Оказывается, все, что мне нужно сделать, - это забыть путь сборки и только положить банки в папку WEB-INF/lib. Работает как шарм: D

3

Нельзя копировать конкретные приложения на сервер lib. Вместо этого используйте WEB-INF/lib. Удалите struts2-core-2.3.16.jar с сервера lib. Если у вас есть еще struts2-core-x.x.x.jar в WEB-INF/lib, он не позволяет Tomcat развертывать ваше приложение, потому что библиотеки из загрузки Tomcat lib перед развертыванием любого приложения. Он останавливает развертывание. Папка Tomcat lib должна содержать только установленные Tomcat банки, необходимые для запуска веб-контейнера, нет необходимости копировать туда другие банки, если вы не знаете, что делаете.

Смежные вопросы