2016-09-21 3 views
-2

У меня возникли проблемы с response.sendRedirect, основная проблема в том, что я сконфигурировал struts.xml и responseServlet, но я могу назвать один метод класса, но не другие.java.lang.NoSuchMethodException struts servlet

Я могу назвать

response.sendRedirect ("inicioRemesa600.action");

но не может

response.sendRedirect ("xmlFirmaRemesa600.action");

Оба метода существуют в том же классе и возвращает строку с адресом боба

Любой знает, почему ??

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

Хорошо, проблема, что я имел частный метод, вам нужен публичный метод для send.redirect

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