2010-08-02 1 views
0

У меня есть то, что я считаю странной проблемой.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 совершенно разные ...

ответ

0

Отображения выглядят отлично. Симптомы, по крайней мере, указывают на то, что неправильный адрес был неправильным, или какой-либо фильтр или сервлет изменили назначение запроса/ответа до или после достижения сервлета.

Эту проблему сложно скрыть без отладки/регистрации всех сервлетов и фильтров для отслеживания пути выполнения экземпляра на всем протяжении кода. И поскольку у нас нет доступа к вашему коду/среде для воспроизведения проблемы, эта задача полностью зависит от вас.

0

Я думаю, должно быть, что-то не так в моем web.xml с URL-сопоставлением. должен быть очень тонким, только фиксированным путем копирования и вставки другого сервлет-отображения и изменения URL-адреса.

Возможные причины: использование немецкой клавиатуры и переход между английским и немецким ???

0

выглядит как простая опечатка, должно быть <url-pattern>, не <url_pattern>