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