2016-06-13 12 views
0

ストライプアクションビーンズでトラブルが発生しています。ブラウザ上の最初のhttp://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInternoを紹介ストライプアノテーション@UrlBindingが正しく機能していません。 302ステータスコード

は私がブラウザ上でhttp://localhost:9080/profesionales-sanitarios-war/medicos/publico/accesoInternoを紹介第二回302のステータスコードを引き起こし、AccesoActionBean

にリダイレクトし、それが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が正しくコーディングされているようだ、彼らは最初の時間から右アクションBeanにリダイレクトする他の人に似ています。私は検索しました、私はデバッグしましたが、私は答えを見つけることができませんでした。私は解決策を探している

<?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> 

が、私の書き込みが完全でない場合、私は私が謝罪したい任意の

を見つけることができませんでした:私は、その問題が、このweb.xmlのようないくつかの設定ファイルから来ると思います私の母国語は英語ではないので、正しい。

+0

@UrlBinding( "/ foo/{bar}")のように、パラメータ名を中括弧({})に入れてURLに埋め込むことができます。/foo/abc/123は、アクションを "/ foo"にマップし、 "bar"と "baz"パラメータがURLに埋め込まれている可能性があることを示します。 barは "abc"に設定され、bazは "123"に設定されます。パラメータ間のリテラル文字列は任意の文字列にすることができます。 –

+0

申し訳ありません問題は、ブラウザーに** **/medicos/publico/accesoInterno **というURLを入力すると** 302状態**を返し、** .../medicos/publico/acceso ** ** .../medicos/publico/accesoInterno **を再入力すると、** 200ステータス**と** .../medicos/publico/accesoInterno **の正しいページが返されます。私はちょうどスラッシュなしでテストしました、そして、アプリケーションは同じように関わります。 –

+0

申し訳ありませんが、両方のアクションビーンを一緒に使用していたことはわかりませんでした。私は第二のものが第一のものの代わりであると思った。 JSP_ACCESO_INTERNO変数には正確に何が入っていますか? – acdhirr

答えて

0

いいえ、2番目のActionBeanは最初の1回のみにリダイレクトされます。 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

関連する問題