У меня есть то, что я считаю странной проблемой.URL-адрес не работает для сервлета
С того же отображения на сервлет, один 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/сайты/NEW_SITE/*, но не для/universal_listings_administration/сайтов/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, (копирование, вставка из Интернета. XML), и вот что я получаю в запросе, когда она попадает на первый фильтр (по сравнению create_site и delete_site:
create_site: http://www.example.com:8888/universal_listings_administration/sites/new_site/ _pathInfo: "/" _requestURI: "/ universal_listings_administration/сайты/NEW_SITE /" _servletPath: "/ univer sal_listings_administration/сайты/NEW_SITE» _uri: "/ universal_listings_administration/сайты/NEW_SITE /"
delete_site: http://www.example.com:8888/universal_listings_administration/sites/delete_site/ _pathInfo: "/ сайты/delete_site /" _requestURI: "/ universal_listings_administration/сайты/delete_site /" _servletPath : "/ universal_listings_administration" _uri: "/ universal_listings_administration/сайты/delete_site /"
Я думаю, теперь я должен выяснить, почему _pathInfo и _servletPath совершенно разные ...