"Avoid using catch-all blocks; except in 'main()'."
Obviously PMD doesn't know about servlet architecture. Ignore that advice. Your arrangement will work fine, but I would add the actionSource variable to the exception logging message and think about a better way to notify the client that there was a problem.
In finally block i am using out.close() to free the resources.
if use System.out.close() ..... will it have the same effect or using out.close() is necessary.
NOT the same! System.out is shared by all the servlets and the servlet container. You should only close streams you open.
It's also quite common to register a common handler in the deployment descriptor and not catch anything in the servlets. If you are planning to handle exceptions using a common means, then there's no need to try/catch in every servlet.