java.lang.NoSuchMethodException struts 小服务程序

java.lang.NoSuchMethodException struts servlet

我在使用 response.sendRedirect 时遇到了一些问题,主要问题是我已经配置了 struts.xml 和 responseServlet,但我可以调用 class 的一种方法,但不能调用其他方法。

我可以打电话给

response.sendRedirect("inicioRemesa600.action");

但不能

response.sendRedirect("xmlFirmaRemesa600.action");

这两种方法都存在于同一个 class 和 return 一个带有 url bean

的字符串中

有人知道为什么吗??

    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");

当然,问题是我有一个私有方法,你需要一个 public 方法用于 send.redirect