I'm going to do a post-doc. My contract is 2 years, and so is the funding in my DS-2019 form. But when I received my J-1 visa, it is only valid for 1 year. I don't understand why. Do I need to go back to my country mid-way of the project to apply for the Visa again?
Visa is not the same thing as status. The visa only allows you to apply for entry at a port of entry. To remain in the country, you must maintain your status.
As far as the visa is concerned, you only need a new one if you leave the US after the old one expires. If you do, you'll have to apply for a new visa while you are out of the country; if you do not, there's nothing to worry about.
As for status, the date by which you must leave the US should be written on the "admitted" stamp you received when you entered. It may say "D/S" -- "duration of status" -- which means that you may stay as long as you qualify for J-1 status. I presume that is as long as you continue in your post-doc program.
There may also be a date. Your status will expire on that date, and you would then need to leave the country. However, you can apply to extend your status without leaving the country. For more information, see http://j1visa.state.gov/participants/common-questions/.