Is not abstract and does n ot override abstract method getUrl() in

1 resposta
E

Pessoal ,

fiz a seguinte pagina e esta dando o erro abaixo:
in\java\br\com\cqa\lims\web\analise\unidade\ManterGrupoUnidadeMB.java:[22,7] br.
com.cqa.lims.web.analise.unidade.ManterGrupoUnidadeMB is not abstract and does n
ot override abstract method getUrl() in br.com.cqa.lims.web.utils.PageMB

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page"  
       xmlns:ui="http://java.sun.com/jsf/facelets"  
       xmlns:rich="http://richfaces.org/rich"  
       xmlns:h="http://java.sun.com/jsf/html"  
       xmlns:f="http://java.sun.com/jsf/core"  
       xmlns:cqa="http://www.cqa.com.br" xmlns:a4j="http://richfaces.org/a4j"  
       version="2.0">  
       <cqa:docType />  
      
       <html>  
       <ui:composition template="/main.jspx">  
          <ui:define name="pageTitle">  
             <h:outputLabel value="#{messages['label.incluir.grupo.unidade.titulo']}" />  
          </ui:define>  
          <ui:define name="content">  
             <a4j:keepAlive beanName="ManterGrupoUnidadeMB" />           
             <h:form>  
                <fieldset>  
                   <rich:panel id="panelJuridica">  
                      <f:facet name="header">  
                         <h:outputText value="#{messages['label.grupo.unidade']}"/>  
                        </f:facet>  
                      <ul>  
                         <li class="name">  
                            <h:outputLabel value="#{messages['label.descricao']}" />  
                            <h:inputText value="#{ManterGrupoUnidadeMB.grupounidade.descricao}" maxlength="50" />  
                         </li>  
                      </ul>  
                   </rich:panel>  
                      <div class="buttons">  
                      <h:commandButton value="#{messages['botao.salvar']}" action="#{ManterGrupoUnidadeMB.salvarUnidade}" styleClass="saveButton mainButton" />  
                      <h:commandButton value="#{messages['botao.cancelar']}" action="#{ManterGrupoUnidadeMB.cancelar}" styleClass="cancelButton" immediate="true" />  
                   </div>  
                </fieldset>  
             </h:form>  
          </ui:define>  
       </ui:composition>  
       </html>  
    </jsp:root>  
      
      
      
    public class ManterGrupoUnidadeMB implements Serializable, PageMB {  
      
       private static final long serialVersionUID = -7656222286364715680L;  
         
       private GrupoUnidade grupounidade = new GrupoUnidade();  
         
       public void salvarUnidade() {  
          if (this.validate(grupounidade)) {  
             String mensagemSucesso = "sucesso.manterGrupoUnidade.inserir";  
             if (grupounidade.getId() != null) {  
                mensagemSucesso = "sucesso.manterGrupoUnidade.alterar";  
             }  
      
             /*grupoService.salvarGrupo(grupoSelecionado); 
             FacesUtils.addSucessMessage(mensagemSucesso); 
             this.irParaPaginaDeBusca();*/  
          }  
       }  
      
       private boolean validate(GrupoUnidade grupounidade) {  
          FacesContext faces = FacesContext.getCurrentInstance();  
      
          List<InvalidValue> invalidValues = ValidationUtils  
                .obtemValoresInvalidos(grupounidade, GrupoUnidade.class, faces);  
      
          List<InvalidValue> invalidValueToRemove = new ArrayList<InvalidValue>();  
      
          for (InvalidValue iv : invalidValues) {  
             FacesMessage message = new FacesMessage();  
             message.setSeverity(FacesMessage.SEVERITY_ERROR);  
      
             String label = FacesUtils.getMessage("label."  
                   + iv.getPropertyName());  
      
             String msg = null;  
             msg = String.format(iv.getMessage(), label);  
      
             message.setSummary(msg);  
             message.setDetail(msg);  
             faces.addMessage(null, message);  
          }  
      
          invalidValues.removeAll(invalidValueToRemove);  
          return invalidValues.isEmpty();  
       }  
         
         
         
       public void cancelar() {  
          this.irParaPaginaDeBusca();  
       }  
         
         
       private void irParaPaginaDeBusca() {  
          /*ConsultarGrupoMB consultarGrupoMB = FacesUtils 
                .findManagedBean(ConsultarGrupoMB.class); 
          consultarGrupoMB.limpaListaGrupos(); 
          FacesUtils.renderPage(consultarGrupoMB.getUrl());*/  
            
          System.out.print("teste");  
       }  
         
         
         
      
      
    }  
      
    public interface PageMB extends Serializable {  
      
       public String getUrl();  
      
    }

1 Resposta

ViniGodoy

O erro é bem claro. Se a classe ManterGrupoUnidadeMB quer implementar a interface PageMB, ela é obrigada a implementar o método getUrl(). E, no caso, sua classe não tem esse método.

Por isso o compilador está dizendo que, ou você implementa, ou torna a classe uma classe abstrata.

Também não é necessário fazer em ManterGrupoUnidadeMB um implements Serializable, já que PageMB já faz extends nessa interface.

Criado 7 de janeiro de 2013
Ultima resposta 7 de jan. de 2013
Respostas 1
Participantes 2