2010-08-02 4 views
0

J'ai ce que je pense être un problème bizarre.Le mappage d'URL ne fonctionne pas pour le servlet

Avec le même mappage à un servlet, une URL fonctionne, et l'autre n'a pas:

<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 travaille pour/universal_listings_administration/sites/NEW_SITE/* mais pas pour/universal_listings_administration/sites/delete_site/*

En accédant à/universal_listings_administration/sites/delete_site/* le site va simplement à l'UL_Admin !!!

J'ai changé la commande des URL, mais j'obtiens les mêmes résultats. J'ai essayé cela sur différents navigateurs, pensant que cela pourrait être un problème de mise en cache, mais obtenir les mêmes résultats à chaque fois.

Est-ce que quelqu'un a une idée de ce qui se passe ici ???

La seule autre chose que je pense qu'il pourrait être mes filtres ou quelque chose? J'ai regardé mais tout semblait fonctionner correctement avec les filtres. Quoi qu'il en soit voici mes paramètres de sécurité et de filtrage dans 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> 

Une mise à jour:

Je l'ai fait une mise au point, je suis certain que je vais l'URL correcte, (copier, coller du web. xml), et Voici ce que je reçois dans la demande quand il frappe le premier filtre (comparaison create_site et delete_site:

create_site: http://www.example.com:8888/universal_listings_administration/sites/new_site/ _pathInfo: "/" _requestURI: "/ universal_listings_administration/sites/NEW_SITE /" _servletPath: "/ univer sal_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 /"

Je suppose que maintenant je dois comprendre pourquoi la _pathInfo et _servletPath sont tout à fait différents ...

Répondre

0

Les mappings ont l'air bien. Les symptômes indiquent au moins que l'URL réelle était incorrecte ou que certains filtres ou servlets ont modifié la destination de la demande/réponse avant ou après l'atteinte de la servlet.

Ce problème est difficile à résoudre sans déboguer/consigner tous les servlets et filtres pour suivre le chemin d'exécution de l'instance HttpServletRequest dans le code. Et puisque nous n'avons pas accès à votre code/environnement pour reproduire le problème, cette tâche vous appartient entièrement.

0

Je pense qu'il doit y avoir quelque chose de mal dans mon web.xml avec le mappage d'URL. doit avoir été très subtile, seulement corrigé en copiant et en collant un autre mappage de servlet et en changeant l'URL.

Causes possibles: utilisation d'un clavier allemand, commutation entre anglais et allemand ???

0

On dirait d'une simple faute de frappe, devrait être <url-pattern>, pas <url_pattern>

Questions connexes