What happens if you don't call afterPropertiesSet in your dataSOurce method? You shouldn't need to call afterPropertiesSet. Spring will call it for you at the right time. It could be that you are calling it too early
Also, can you put the whole exception in your next post?
That does not look like you are using the JNDI datasource I saw above, so that is your first problem.
Also make sure you are using the correct package namespace for LocalSessionFactory bean depending on your version of Hibernate. If you are using the latest Hibernate make sure to also be using the latest Spring.
Are you setting hibernate.dialect property in those properties you are passing in?
Btw it sounds like your moving to JNDI anyway but I would not recommend using BasicDataSource in a production application or the Apache Commons DBCP stuff. That is pretty dated and has known issues. There are more viable solutions available.