Debugging java code is relatively simple. But sometimes the stack trace which you can get is unreadable. You see a lot of lines from the core of the framework and... nothing more. No additional hints where to search for the cause. But stack trace contains a lot of UI-related classes. The reason may be in the EL expression.
One approach is to comment all UI components on the page and check which expression generates an error.
Second approach is a try to trace processed EL expressions on the page. Pages are usually very complex and usually contain many EL...
It is possible to override the default EL resolver in your application. First of all, please create the class that extends abstract ELResolver class or one of its subclasses. In this example I've used MapELResolver (reasons why I've used it you'll find in the documentation).
Then point it in faces-config.xml, as shown below:
I've decided to override getValue method becasue usually an error will be thrown there.
Please note, that this is only a simple implementation that I've used to solve my problem. To fulfill the example, the page that will be examinated.
It bases on DEPARTMENTS table in HR schema. Finally, logs from the application after opening the page:
Hope it'll simplify your debugging processes in the future :)