У меня есть, как мне кажется, странная проблема.
При том же сопоставлении с сервлетом один URL работает, а другой - нет:
<servlet-mapping>
<servlet-name>UL_Admin</servlet-name>
<url-pattern>/universal_listings_administration/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Create_New_Site</servlet-name>
<url-pattern>/universal_listings_administration/sites/new_site/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>Create_New_Site</servlet-name>
<url_pattern>/universal_listings_administration/sites/delete_site/*</url_pattern>
</servlet-mapping>
Create_New_Site работает для / universal_listings_administration / sites / new_site / *, но не для / universal_listings_administration / sites / delete_site / *
При переходе на / universal_listings_administration / sites / delete_site / * сайт просто переходит на UL_Admin !!!
Я изменил порядок URL, но получаю те же результаты. Я пробовал это в разных браузерах, думая, что это может быть проблемой кеширования, но каждый раз получаю одинаковые результаты.
Кто-нибудь имеет представление о том, что здесь происходит ???
Единственное, что я думаю, это могут быть мои фильтры или что-то в этом роде? Я посмотрел, но с фильтрами все работало нормально. В любом случае, вот мои настройки безопасности и фильтра в web.xml
<security-constraint>
<web-resource-collection>
<url-pattern>/universal_listings_administration/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<url-pattern>/jsps/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<url-pattern>/stylesheets/admin/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<!-- Filters -->
<filter>
<!-- This filter defines all of the URIs on the site, to ensure easy to update URIs -->
<!-- All URIs defined here will be added to the request's Attributes -->
<!-- The URIs follow naming convention uri-name or uri-admin-name -->
<!-- For simplicity sake, do this only for client URIs (internal can be covered by eclipse!) -->
<filter-name>UriSettingFilter</filter-name>
<filter-class>nz.co.unilistings.control.UriAttributeSettingFilter</filter-class>
<init-param>
<param-name>uri-admin-portal</param-name>
<param-value>/universal_listings_administration/</param-value>
</init-param>
<init-param>
<param-name>uri-admin-new-site</param-name>
<param-value>/universal_listings_administration/sites/new_site/</param-value>
</init-param>
<init-param>
<param-name>uri-admin-delete-site</param-name>
<param-value>/universal_listings_administration/sites/delete_site/</param-value>
</init-param>
</filter>
<filter>
<filter-name>SubdomainFilter</filter-name>
<filter-class>nz.co.unilistings.control.SubdomainFilter</filter-class>
<init-param>
<description>Any subdomain with this value will go to the parent site</description>
<param-name>parent_site_subdomain</param-name>
<param-value>www</param-value>
</init-param>
<init-param>
<description>The URL of the parent site (where people can register)</description>
<param-name>parent_url</param-name>
<param-value>http://www.example.com:8888</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SubdomainFilter</filter-name>
<servlet-name>*</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>UriSettingFilter</filter-name>
<servlet-name>*</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
Обновление:
Я сделал некоторую отладку, я уверен, что я иду по правильному URL (скопируйте, вставьте из web.xml), и вот что я получаю в запросе, когда он попадает в первый фильтр (сравнивая create_site и delete_site :
create_site:
http://www.example.com:8888/universal_listings_administration/sites/new_site/
_pathInfo: "/"
_requestURI: "/ universal_listings_administration / sites / new_site /"
_servletPath: "/ universal_listings_administration / sites / new_site"
_uri: "/ universal_listings_administration / sites / new_site /"
delete_site:
http://www.example.com:8888/universal_listings_administration/sites/delete_site/
_pathInfo: "/ sites / delete_site /"
_requestURI: "/ universal_listings_administration / sites / delete_site /"
_servletPath: "/ universal_listings_administration"
_uri: "/ universal_listings_administration / sites / delete_site /"
Полагаю, теперь мне нужно выяснить, почему _pathInfo и _servletPath совершенно разные ...