29 Eylül 2010 Çarşamba

4-exception handling and logging in adf

create a class and extend it from DCErrorHandlerImpl. overriding getDisplayMessage and reportException enough for exception handling.

package view;

import java.util.Map;

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

import oracle.adf.model.BindingContext;
import oracle.adf.model.binding.DCBindingContainer;
import oracle.adf.model.binding.DCErrorHandlerImpl;

import oracle.binding.OperationBinding;


public class CustomErrorHandler extends DCErrorHandlerImpl 
{
    public CustomErrorHandler() 
    {
        super(true);//test
    } 
    @Override
    public String getDisplayMessage(BindingContext ctx, Exception th) 
    {
      FacesContext ctx3 = FacesContext.getCurrentInstance();
      FacesMessage fm = new FacesMessage(FacesMessage.SEVERITY_INFO, "Teknik hata", th.getLocalizedMessage());
      ctx3.addMessage(null, fm);
      return super.getDisplayMessage(ctx, th);
    }

    @Override
    public void reportException(DCBindingContainer dCBindingContainer, Exception exception) 
    {
      BindingContext bindingContext = dCBindingContainer.getBindingContext();
      DCBindingContainer templateBindingContainer = bindingContext.findBindingContainer("view_templateMasterPageDef");
      String error = getDisplayMessage(dCBindingContainer.getBindingContext(), exception);
      OperationBinding operationBinding = templateBindingContainer.getOperationBinding("addInformationMessageTest");
      Map params = operationBinding.getParamsMap();
      params.put("cause", exception.getCause());
      params.put("message", exception.getMessage());
      operationBinding.execute();
      //super.reportException(dCBindingContainer, exception);
    }
    /**
     * Local method and not used outside
     * @param warning
     * @return
     */
    
  }






in databinding.cpx




in your masterpage bind method "addInformationMessageTest" to send exception to db or whatever .

i will explain another post using stored procedure and functions in adf.

Hiç yorum yok:

Yorum Gönder