Мне нужно настроить развертывание моего портлета liferay так, чтобы файлы GWT nocache.js не получали набор HTTP-заголовков Expires.
Мой военный файл выглядит так:
view.jsp
com.foobar.MyEntryPoint/com.foobar.MyEntryPoint.nocache.js
com.foobar.MyEntryPoint/12312312313213123123123.cache.html
WEB-INF/web.xml
WEB-INF/portlet.xml
WEB-INF/liferay-portlet.xml
... etc
мой web.xml
почти пуст (имеет только displayName)
При развертывании мой liferay переписывается, чтобы в партикаре была серия фильтров:
<filter>
<filter-name>Header Filter</filter-name>
<filter-class>com.liferay.portal.kernel.servlet.PortalClassLoaderFilter</filter-class>
<init-param>
<param-name>filter-class</param-name>
<param-value>com.liferay.portal.servlet.filters.header.HeaderFilter</param-value>
</init-param>
<init-param>
<param-name>Cache-Control</param-name>
<param-value>max-age=315360000, public</param-value>
</init-param>
<init-param>
<param-name>Expires</param-name>
<param-value>315360000</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Header Filter</filter-name>
<url-pattern>*.js</url-pattern>
</filter-mapping>
Этот фильтр добавляет заголовок Expires примерно на 2020 год в js-файлы .nocache.js ... проблема в том, что эти файлы действительно не должны кэшироваться (подсказка в названии :)
В целях разработки я решил обойти это, отключив фильтр, используя:
com.liferay.portal.servlet.filters.header.HeaderFilter=false
в портале-ext.properties globaly. То, что я хотел бы, - это одно из следующего:
- Отключите HeaderFilter только для этого портлета или файла war. Я всегда могу добавить свой срок действия
- Добавьте параметр init в HeaderFilter, чтобы он соответствовал чему-либо, кроме файлов .nocache.js
Есть идеи, как можно достичь любой из этих вещей?
Стек: liferay-6.0.1 CE, Windows 7, java 1.6.0_18, GWT 2.0.3.