2010-08-02 3 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의 순서를 변경했지만 동일한 결과를 얻는다. 여러 브라우저에서이 문제를 캐싱 문제 일 수 있다고 생각했지만 매번 같은 결과가 나타납니다.

아무도 여기에 무슨 일이 일어나고 있는지에 대해 어떤 생각이 있습니까 ???

내가 생각할 수있는 유일한 다른 사항은 내 필터 또는 그 무엇입니까? 나는 모양을 보았지만 필터로 모든 것이 잘 작동하는 것처럼 보였다.

좀 디버깅을했다, 내가 올바른 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> 

업데이트가 내 보안 및 필터 설정을합니다.

create_site : http://www.example.com:8888/universal_listings_administration/sites/new_site/ _pathInfo : "/" _requestURI : "/ universal_listings_administration/사이트/NEW_SITE /" 는 첫 번째 필터 (비교 create_site 및 delete_site을 칠 때 XML), 그리고 여기에 내가 요청에 무엇을 얻을 _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

매핑이 잘 보입니다. 적어도 URL이 잘못되었거나 일부 필터 또는 서블릿이 서블릿에 도달하기 전이나 후에 요청/응답 대상이 변경되었음을 나타내는 증상이 있음을 나타냅니다.

이 문제는 코드 전체에서 HttpServletRequest 인스턴스의 실행 경로를 추적하기 위해 모든 서블릿과 필터를 디버깅/로깅하지 않고도 해결하기가 어렵습니다. 문제를 재현 할 수있는 코드/환경에 대한 액세스 권한이 없으므로이 작업은 전적으로 귀하에게 달려 있습니다.

0

URL 매핑을 사용하여 web.xml에 뭔가 잘못되었을 것으로 생각됩니다. 다른 서블릿 매핑을 복사하여 붙여 넣고 URL을 변경하는 것만으로 매우 고정되어 있어야합니다.

가능한 원인 : 독일어 키보드 사용 및 영어와 독일어 간의 전환 ???

0

단순한 오타처럼 보이며, <url-pattern>이 아니라 <url_pattern>

이어야합니다.
관련 문제