Ok so basically I am talking with someone about building a way for users to post locations to a map and have a pin over the location.
I know Google Maps can do this
So to answer your question. I use the Google Maps API.
Why?
I think there are a whole lot of good reasons that make Google Maps an extremely valuable mapping solution for web developers. I realise I will probably sound like a hand waving evangelist, but here goes:
If you want to use a framework for building applications around maps in Java, you should have a look at http://www.geomajas.org/ which is an open source web mapping framework. This gives you both a mapping front end (using GWT), and powerful integration of different data sources. Amongst other options, you could use OpenStreetMaps for base data and integrate that with many other layers. And it is all pure java.
Have a look at OpenStreeMaps. No licencing issues.
I know this is an old question, but for those just stumbling on it now... Here is a list of various free and open web mapping technologies:
https://github.com/erasmus-mundus-geotech-master/open_source_geospatial_technologies
Which one is best for you depends on what you want to do. For collaboratively adding pins to a map, I would also recommend Google Maps, or roll your own app with Leaflet.js!
Full disclosure: I am one of the main contributors to the list above.