2013-05-23 3 views
2

Только что начал использовать Struts2. Я подумал, что было бы неплохо использовать архетип struts2, но, похоже, он очень устарел. Когда я запускаю свой проект, я получаю это предупреждение:ActionContextCleanUp устарел Struts2 Archetype

ActionContextCleanUp <<< is deprecated! Please use the new filters! 

Вот мой текущий файл web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    version="2.5"> 

    <display-name>Test</display-name> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath*:applicationContext*.xml</param-value> 
    </context-param> 

    <!-- Filters --> 
    <filter> 
     <filter-name>action2-cleanup</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> 
    </filter> 
    <filter> 
     <filter-name>sitemesh</filter-name> 
     <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> 
    </filter> 
    <filter> 
     <filter-name>action2</filter-name> 
     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
    </filter> 

    <filter-mapping> 
     <filter-name>action2-cleanup</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <filter-mapping> 
     <filter-name>sitemesh</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <filter-mapping> 
     <filter-name>action2</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

    <!-- Listeners --> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 


    <!-- Servlets --> 
    <servlet> 
     <servlet-name>dwr</servlet-name> 
     <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
     <init-param> 
      <param-name>debug</param-name> 
      <param-value>true</param-value> 
     </init-param> 
    </servlet> 
    <servlet> 
     <servlet-name>jspSupportServlet</servlet-name> 
     <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class> 
     <load-on-startup>5</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>dwr</servlet-name> 
     <url-pattern>/dwr/*</url-pattern> 
    </servlet-mapping> 


    <!-- Welcome file lists --> 
    <welcome-file-list> 
     <welcome-file>index.jsp</welcome-file> 
     <welcome-file>default.jsp</welcome-file> 
     <welcome-file>index.html</welcome-file> 
    </welcome-file-list> 

</web-app> 

Что я могу изменить, чтобы избавиться от предупреждения?

+0

Какую версию архетипа вы используете? –

+0

Не уверен, какая версия, вот команда, которую я использовал: mvn archetype: generate -B -DgroupId = tutorial -DartifactId = tutorial -DarchetypeGroupId = org.apache.struts -DarchetypeArtifactId = struts2-archetype-starter. Я не включил -DarchetypeVersion = , потому что я читал, что мне не нужно, чтобы получить последнюю версию. –

+0

Пожалуйста, за билет JIRA. Вы избавляетесь от предупреждения, удаляя фильтр, предупреждает вас об этом. IIRC - это случай показа SiteMesh, на который вы могли бы обратиться за ссылкой, хотя я не знаю, страдает ли она той же проблемой или нет. –

ответ

2

Получил это. Посмотрев на файл this example web.xml для плагина sitemesh, у меня появился рабочий файл web.xml. Вот как это выглядит для тех, у кого есть эта проблема:

<display-name>Test</display-name> 

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath*:applicationContext*.xml</param-value> 
</context-param> 

<!-- Filters --> 
<filter> 
    <filter-name>struts-prepare</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class> 
</filter> 
<filter> 
    <filter-name>sitemesh</filter-name> 
    <filter-class>com.opensymphony.module.sitemesh.filter.PageFilter</filter-class> 
</filter> 
<filter> 
    <filter-name>struts-execute</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class> 
</filter> 
<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>struts-prepare</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>sitemesh</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>struts-execute</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<!-- Servlets --> 
<servlet> 
    <servlet-name>dwr</servlet-name> 
    <servlet-class>uk.ltd.getahead.dwr.DWRServlet</servlet-class> 
    <init-param> 
     <param-name>debug</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</servlet> 
<servlet> 
    <servlet-name>jspSupportServlet</servlet-name> 
    <servlet-class>org.apache.struts2.views.JspSupportServlet</servlet-class> 
    <load-on-startup>5</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>dwr</servlet-name> 
    <url-pattern>/dwr/*</url-pattern> 
</servlet-mapping> 

<!-- Listeners --> 
<listener> 
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
</listener> 

<!-- Welcome file lists --> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    <welcome-file>index.html</welcome-file> 
</welcome-file-list> 

</web-app> 

Теперь, когда предупреждение исчезло.

+0

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

0

вы можете удалить фильтр action2-cleanup.

<filter> 
    <filter-name>action2-cleanup</filter-name> 
    <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> 
</filter>