There is a mistake in maven configuration. Actually I am trying to run a maven build with this command install tomcat:run in maven goal. But maven lead me to this error:
java.lang.ClassCastException: javax.faces.webapp.FacesServlet cannot be cast to javax.servlet.Servlet
Guess what? I have mistakenly configure the javax.servlet-api to compile scope. Basically Tomcat has already provide this package, thus it is not require to deploy again. To fix this, just set the scope to provided and I am done.