Got a solution .
This case is if you need to use long lived tokens like I do.
1. Publish your custom print gp service tool as directed though the following link ArcGIS Help 10.1 .
2. The using the PrintParamters class in the API generate a JSON object of the print Parameters using the "toJSON" method on the class. This will return the layout format, template and Web_Map_JSON.
3. Loop through the web_map_json.oprationalLayers array and remove the "web_map_json.oprationalLayers.token" property from all the layers that have them.
4. Then use the GeoProcessor class to execute the print parameters by passing in the object returned from the .toJSON method on the printParameters class.
5. And your should get a print out.