You did exactly right and there's nothing wrong with Eclipse there.
But I think you're making the common mistake of assuming that "http://localhost:8080/JSFTest2/test.jsf" is a
file path. It is not. It's a
Uniform Resource Locator.
The difference is that a URL is something that looks somewhat like a file path, but is actually just an ID
string for a resource. That ID string is passed to the FacesServlet, because it matches (one of) the FaceServlet's URL
pattern(s). Specifically, you've directed your webapp server to route URLs ending with ".jsf" to FacesServlet.
FacesServlet decodes the URL. The way they decode it is to remove ".jsf" from the end of the URL string - which has already had things like the protocol and query strings removed from it - and replace the ".jsf" with a ".jsp" and use that as a relative path reference within the WAR to locate your view source (test.jsp). It will then perform the JSF magic against that view source in order to render the actual HTML page that gets sent back to the user's browser.
So everything there is just fine. Are you still getting an exception?
The secret of how to be miserable is to constantly expect things are going to happen the way that they are "supposed" to happen.
You can have faith, which carries the understanding that you may be disappointed. Then there's being a willfully-blind idiot, which virtually guarantees it.