2016-06-13 2 views
0

У меня проблемы с полосками бобов.Строка аннотации @UrlBinding работает неправильно. 302 status status

Представляем первый http://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInterno в браузере вызывает код на 302 состояния и перенаправляет на AccesoActionBean

Второй раз я представить http://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInterno в браузере, он возвращает код статуса 200 и работает отлично собирается AccesoInternoActionBean.

Это происходит как с локальным хостом, так и с сервером (разработка, предварительная подготовка и производство).

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 будет ссылаться на действие с баром, установленным на «abc», а baz - «123». Литеральные строки между параметрами могут быть любой строкой ». –

+0

Извините, проблема в том, что когда я печатаю в браузере URL ** .../medicos/publico/accesoInterno ** один раз, приложение возвращает статус ** 302 ** и перенаправляет на ** .../медики/Publico/Acceso **. Если я перепечатаю ** .../medicos/publico/accesoInterno **, он возвращает статус ** 200 ** и правильную страницу в ** .../medicos/publico/accesoInterno **.Я только что протестировал без косой черты, и приложение вовлекает то же самое. –

+0

Извините, не понимал, что вы использовали оба actionbeans вместе. Я думал, что вторая была альтернативой первой. Что именно находится в переменной JSP_ACCESO_INTERNO? – acdhirr

ответ

0

ОК, поэтому второй ActionBean перенаправляет на первый только один раз. I Предположим, что в jsp-файлах нет перенаправления. В ActionBeans также нет перенаправления . Hm ... но есть какие-то классы перехватчиков(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

Это круто. Рад помочь и удачи в дальнейших расследованиях! (Кстати, учитывая имя перехватчика, я думаю, вы захотите сохранить хотя бы какой-то механизм, чтобы пользователи вошли в систему!) – acdhirr

Смежные вопросы