2016-09-21 2 views
-2

私はresponse.sendRedirectにいくつかの問題がありますが、主な問題はstruts.xmlとresponseServletを設定していることですが、クラスのメソッドを呼び出すことはできますが、java.lang.NoSuchMethodException strutsサーブレット

私は

response.sendRedirect( "inicioRemesa600.action")を呼び出すことができます。

しかしできない

response.sendRedirect( "xmlFirmaRemesa600.action")。

どちらのメソッドは、同じクラスに存在し、URL豆とStringを返す

誰もがなぜ知っています?

public void signOK(FirmaInfoViafirma fiv, HttpServletRequest request, 
     HttpServletResponse response) { 

    log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_INICIO + "signOK"); 
    // Recupera el context-param que verificará o no que la firma corresponda con la 
    // personalidad que figura como presentante del tramite: 
    String comprobarFirmante = request.getSession().getServletContext().getInitParameter("comprobarFirmante"); 
    log.info(Claves.CLAVE_LOG_CONTEXT_PARAM + "comprobarFirmante: " + comprobarFirmante); 
    ViafirmaClient viafirmaClient=(ViafirmaClient)request.getSession().getServletContext(). 
     getAttribute("viafirmaClient"); 

    // Recupera el valor del atributo de request tipoMensajeFirmado 
    // para saber si lo que se ha firmado es un rm o un dpr: 
    String tipoMensajeFirmado=request.getSession().getAttribute("tipoMensajeFirmado").toString(); 
    Integer modeloFirmado =(Integer)request.getSession().getAttribute("modeloFirmado"); 
    request.getSession().setAttribute("tipoMensajeFirmado", null); 
    // Comprobación para firmar un XML de pago y presentacion de una remesa de Castilla y León 
    if(tipoMensajeFirmado!=null&&tipoMensajeFirmado.equals("documentacionEscritura")){ 
     try{ 
      // Comprueba que se ha firmado con un certificado cuyo nif coincide 
      // con el presentante del trámite: 
      if(comprobarFirmante.equalsIgnoreCase("si")){ 
       String nifPresentante = (String) request.getSession().getAttribute("nifPresentanteTramite"); 
       // Recupera el nif del certificado de las dos formas posibles: 
       String nifCertificadoFirmanteMapa = fiv.getProperties().get("numberIdResponsable"); 
       String nifCertificadoFirmantePropiedad = fiv.getNumberUserId(); 
       String nifCertificadoFirmante = null; 
       // Si la propiedad numberIdResponsable tiene el nif: 
       if(nifCertificadoFirmanteMapa != null && !nifCertificadoFirmanteMapa.equals("")){ 
        nifCertificadoFirmante = nifCertificadoFirmanteMapa; 
       // Si la propiedad numberUserId tiene el nif: 
       }else if(nifCertificadoFirmantePropiedad != null && !nifCertificadoFirmantePropiedad.equals("")){ 
        nifCertificadoFirmante = nifCertificadoFirmantePropiedad; 
       } 
       // Si el nifCertificadoFirmante no tiene valor, no se ha recuperado el nif del certificado 
       // de ninguna de las dos formas posibles: 
       if(nifCertificadoFirmante == null){ 
        request.getSession().setAttribute("mensajeError","No se ha podido recuperar el nif " + 
          "del certificado con el que se ha firmado. No se ha podido comprobar que presentante " + 
          " y firmante son la misma persona. Cancelado el envío."); 
        log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_FIN + "signOK"); 
        response.sendRedirect("discriminarError.action"); 
        return; 
       } 
       if(!nifPresentante.equalsIgnoreCase(nifCertificadoFirmante)){ 
        request.getSession().setAttribute("mensajeError","Se ha cancelado el envío. " + 
          "La firma de la documentación debe correr a cargo de la personalidad que figura " + 
        "como presentante del trámite. El nif de la persona que consta como presentante es " + 
         nifPresentante + " y el nif que consta en el certificado con el que se ha intentado firmar es " + 
         nifCertificadoFirmante); 
        log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_FIN + "signOK"); 
        response.sendRedirect("discriminarError.action"); 
        return; 
       } 
      } 
      String idFirma=fiv.getSignId(); 
      // Pone en sesión la firma y el timestamp: 
      request.getSession().setAttribute("firmaRemesaBytes",XmlBuilderSupportUtils.getCMSSignatureWithOutTimeStampBytes(idFirma)); 
      request.getSession().setAttribute("selloRemesaBytes",XmlBuilderSupportUtils.getTimeStampFromCMSbytes(idFirma)); 
      log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_FIN + "signOK"); 
      response.sendRedirect("xmlFirmaRemesa600.action"); 
+0

望ましい行動のためのパブリックメソッドが必要だった - > response.sendRedirect( "xmlFirmaRemesa600.action ");先に述べたように、クラスの他のメソッドにリダイレクトできますが、xmlFirma()にはリダイレクトできません。 – AMB

答えて

0

[OK]を、問題は、私はプライベートメソッドを持っていたことを、あなたはこの作品を作るれるsend.redirect

関連する問題