Sachverhalt: Sachverhalt: A. X._ wurde am 28. August 2003 wegen mehrfacher schwerer Widerhandlung gegen das Betäubungsmittelgesetz (BetmG, SR 812.121) sowie gegen das Bundesgesetz vom 26. März 1931 über Aufenthalt und Niederlassung der Ausländer (ANAG, SR 142.20) zu zweieinhalb Jahren Gefängnis verurteilt, abzüglich 142 Tage Untersuchungshaft. Zudem wurde er mit einer Landesverweisung von acht Jahren, unbedingt vollziehbar, belegt. X._ erhob gegen dieses Urteil Berufung an das Kantonsgericht St. Gallen. Dieses wies die Berufung am 10. März 2004 ab und auferlegte ihm die Verfahrenskosten. X._ erhob gegen dieses Urteil Berufung an das Kantonsgericht St. Gallen. Dieses wies die Berufung am 10. März 2004 ab und auferlegte ihm die Verfahrenskosten. B. X._ führt mit Eingabe vom 26. Mai 2004 staatsrechtliche Beschwerde und beantragt die Aufhebung des Entscheides des Kantonsgerichts. Zudem stellt er das Gesuch um Gewährung der unentgeltlichen Rechtspflege. Die Staatsanwaltschaft schliesst auf Abweisung der Beschwerde, soweit darauf einzutreten sei, das Kantonsgericht verzichtet auf eine Vernehmlassung. Der Beschwerdeführer erhielt Gelegenheit zu einem zweiten Schriftenwechsel. Er bestritt die Ausführungen der Staatsanwaltschaft und verzichtete im Übrigen auf weitere Ausführungen.