2016-06-13 12 views
0

줄무늬 액션 콩에 문제가 있습니다. 브라우저에 처음 http://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInterno 소개줄무늬 주석 @UrlBinding이 올바르게 작동하지 않습니다. 302 상태 코드

가 200 상태 코드를 반환 미세 AccesoInternoActionBean가는 작품, 302 상태 코드를 발생시키고

내가 브라우저에 http://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInterno을 소개하는 두 번째 시간을 AccesoActionBean 리디렉션.

로컬 호스트와 서버 (개발, 시제품 및 제작)에서 모두 발생합니다.

AccesoActionBean.java :

@UrlBinding("/medicos/publico/acceso" + "/{tipoAcceso}/{destino}") 
public class AccesoActionBean extends MedicosBaseActionBean { 

[...] 

    @DontValidate 
    @DefaultHandler 
    public Resolution init() { 
     setSessionField(SESION_CONTADOR_ACCESOS, contadorAccesos); 
     if(tipoAcceso != null && "popup".equalsIgnoreCase(tipoAcceso)) { 
      return new ForwardResolution("/WEB-INF/pages/acceso/loginForm.jsp"); 

     } else { 
      return new ForwardResolution(NavegacionConst.JSP_ACCESO); 
     } 
    } 

[...] 

} 

AccesoInternoActionBean.java :

@UrlBinding("/medicos/publico/accesoInterno") 
public class AccesoInternoActionBean extends MedicosBaseActionBean { 

[...] 

    @DontValidate 
    @DefaultHandler 
    public Resolution init() { 
     setSessionField(SESION_CONTADOR, contadorAccesos); 
     return new ForwardResolution(NavegacionConst.JSP_ACCESO_INTERNO); 
    } 

[...] 

} 

ActionBeans

올바르게 코딩 것 같다, 그들은 처음부터 올바른 행동 콩로 리디렉션 다른 유사하다. 검색을했는데 디버깅을했지만 대답을 찾을 수 없었습니다. 나는 그 문제는 일부 구성 파일이 web.xml에 같이 올 수 있다고 생각 :

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
           http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 

    <display-name>${project.build.finalName}</display-name> 

    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <listener> 
     <listener-class>es.sanitas.medicos.stripes.listeners.StartupListener</listener-class> 
    </listener> 

    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>classpath:es/sanitas/medicos/applicationContext-profesionales.xml</param-value> 
    </context-param> 
    <context-param> 
     <param-name>oracle.adf.jsp.provider.5</param-name> 
     <param-value>oracle.stellent.wcm.javaee.shared.jsp.IdcJspProvider</param-value> 
    </context-param> 
    <context-param> 
     <description>Url del Servidor de Contenidos</description> 
     <param-name>manageSite</param-name> 
     <param-value>http://caliban01:8888/</param-value> 
    </context-param> 

    <filter> 
     <display-name>Stripes Filter</display-name> 
     <filter-name>StripesFilter</filter-name> 
     <filter-class>net.sourceforge.stripes.controller.StripesFilter 
     </filter-class> 
     <init-param> 
      <param-name>Extension.Packages</param-name> 
      <param-value> 
       es.sanitas.stripes.integrations.spring, 
       net.sourceforge.stripes.integration.spring, 
       es.sanitas.stripes.i18n 
      </param-value> 
     </init-param> 
     <init-param> 
      <param-name>ActionResolver.Packages</param-name> 
      <param-value> 
       es.sanitas.medicos.stripes.actionbeans, 
       es.sanitas.medicos.blua.stripes.actionbeans, 
       es.sanitas.stripes.actionbeans.captcha, 
       es.sanitas.medicopersonalprofesionales.stripes 
      </param-value> 
     </init-param> 
     <init-param> 
      <param-name>ExceptionHandler.Class</param-name> 
      <param-value>es.sanitas.medicos.stripes.handlers.MedicosExceptionHandler</param-value> 
     </init-param> 
     <init-param> 
      <param-name>Interceptor.Classes</param-name> 
      <param-value> 
       es.sanitas.medicos.stripes.interceptors.IsLoggedInterceptor, 
       es.sanitas.stripes.interceptors.AuditBaseInterceptor 
      </param-value> 
     </init-param> 
     <init-param> 
      <param-name>LocalePicker.Locales</param-name> 
      <param-value>es_ES:UTF-8,ca_ES:UTF-8,en:UTF-8</param-value> 
     </init-param> 

      <init-param> 
      <param-name>ResourceBundles.BaseNames</param-name> 
      <param-value> 
       es.sanitas.medicos.stripesErrors, 
       es.sanitas.medicos.stripesMessages 
      </param-value> 
      </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>StripesFilter</filter-name> 
     <servlet-name>StripesDispatcher</servlet-name> 
     <dispatcher>FORWARD</dispatcher> 
     <dispatcher>INCLUDE</dispatcher> 
     <dispatcher>REQUEST</dispatcher> 
     <dispatcher>ERROR</dispatcher> 
    </filter-mapping> 

    <servlet> 
     <servlet-name>StripesDispatcher</servlet-name> 
     <servlet-class>net.sourceforge.stripes.controller.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>StripesDispatcher</servlet-name> 
     <url-pattern>/captcha/*</url-pattern> 
    </servlet-mapping> 
    <servlet-mapping> 
     <servlet-name>StripesDispatcher</servlet-name> 
     <url-pattern>/medicos/*</url-pattern> 
    </servlet-mapping> 

    <servlet-mapping> 
     <servlet-name>StripesDispatcher</servlet-name> 
     <url-pattern>/medicopersonalprofesionales/*</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file>/startProfesionalesSanitarios.jspx</welcome-file> 
    </welcome-file-list> 

    <mime-mapping> 
     <extension>js</extension> 
     <mime-type>application/x-javascript</mime-type> 
    </mime-mapping> 

    <mime-mapping> 
     <extension>css</extension> 
     <mime-type>text/css</mime-type> 
    </mime-mapping> 

    <jsp-config> 
     <jsp-property-group> 
      <url-pattern>*.jsp</url-pattern> 
      <scripting-invalid>true</scripting-invalid> 
     </jsp-property-group> 
     <jsp-property-group> 
      <url-pattern>*.jspf</url-pattern> 
      <scripting-invalid>true</scripting-invalid> 
     </jsp-property-group> 
     <jsp-property-group> 
      <url-pattern>*.jspx</url-pattern> 
      <scripting-invalid>false</scripting-invalid> 
      <is-xml>true</is-xml> 
     </jsp-property-group> 
     <jsp-property-group> 
      <url-pattern>*.tagx</url-pattern> 
      <scripting-invalid>true</scripting-invalid> 
     </jsp-property-group> 
    </jsp-config> 

    <error-page> 
     <error-code>500</error-code> 
     <location>/medicos/error</location> 
    </error-page> 
    <error-page> 
     <error-code>404</error-code> 
     <location>/medicos/inicio</location> 
    </error-page> 

</web-app> 

내가 솔루션을 찾고,하지만 내 글이 전혀없는 경우 내가 사과하고 싶은

을 찾을 수 없습니다 제 모국어가 영어가 아니기 때문에 정확합니다.

+0

@UrlBinding 설명서에 따르면 올바른 매개 변수 구문은 다음과 같습니다. 매개 변수 이름을 중괄호 ({})로 삽입하여 매개 변수를 URL에 포함 할 수 있습니다 (예 : @UrlBinding ("/ foo/{bar}/{baz} ")}는"/ foo "에 작업을 매핑하고"bar "및"baz "매개 변수가 URL에 포함될 수 있음을 나타냅니다.이 경우 URL/foo/abc/123은 작업을 호출합니다 bar는 "abc"로 설정하고 baz는 "123"으로 설정합니다. 매개 변수 사이의 리터럴 문자열은 임의의 문자열이 될 수 있습니다. " –

+0

실례합니다. 브라우저에 ** **/medicos/public/accesoInterno ** URL을 입력하면 응용 프로그램이 ** 302 상태 **를 반환하고 **/...로 리디렉션됩니다. medicos/publico/acceso **. ** .../medicos/public/accesoInterno **를 다시 입력하면 ** 200 상태 **와 ** .../medicos/publico/accesoInterno **의 올바른 페이지가 반환됩니다.방금 슬래시없이 테스트했는데 응용 프로그램이 같은 방식으로 진행됩니다. –

+0

죄송합니다. 귀하가 두 행동 빈을 함께 사용하고 있다는 것을 깨닫지 못했습니다. 나는 두 번째 것이 첫 번째 것의 대안이라고 생각했다. JSP_ACCESO_INTERNO 변수에 정확히 무엇이 있습니까? – acdhirr

답변

0

OK, 두 번째 ActionBean은 처음으로 한 번만 리디렉션됩니다. I jsp 파일에 리디렉션이 없다고 가정합니다. ActionBeans에는 리디렉션이 없습니다. 흠 ...하지만 인터셉터 클래스가 있습니다 (web.xml) 리디렉션은 아마도 일부 변수 초기화를 기반으로 할 수 있습니다. 을 사용 중지하면 어떤 일이 발생하는지 확인할 수 있습니다. 드디어 마지막 응답으로 문제를 발견했습니다 "acdhirr"

네 말이 맞아 [약간 더 이상 관련 주석을 제거]. 은 web.xml에서 나는 두 인터셉터 클래스 댓글을 달았습니다 :

<!-- <init-param> 
    <param-name>Interceptor.Classes</param-name> 
    <param-value> 
     es.sanitas.medicos.stripes.interceptors.IsLoggedInterceptor, 
     es.sanitas.stripes.interceptors.AuditBaseInterceptor 
    </param-value> 
</init-param> --> 

지금 내가 그들을 정말 필요한 경우 다른 클래스를 발견하거나 댓글을 달았 유지하기 위해 팀 건축가 조사있어.

한 번 도움 주신 모든 분들께 감사드립니다.

+1

멋진데. 더 많은 조사를 해 주시면 기꺼이 도와 드리겠습니다. (BTW는 인터셉터 이름을 고려하여 사용자가 로그인했는지 확인하기위한 최소한의 메커니즘을 유지하기를 원할 것입니다!) – acdhirr