No metals next to a crazy warmonger is always difficult.
To prevent this kind of thing from happening, use a UI mod, like BUFFY, which would show you on the leaderboard when an AI is plotting, giving you time to prepare. In this case Shaka was probably plotting for ~10 turns, allowing you ample time to build a few archers and walls in thessalonica. IMO this is one of the rare cases where walls are actually a useful build.
A city with walls defended with enough archers can then hold against anything pre-cats. Surely that is not optimal, but the game is not lost. If you can kill the first attack without too many losses they will frequently talk about peace fast, give them what they want, if they want a poor city, sometimes even that is worth it.
As an emergency measure you could still one-pop whip archers.
Btw, to try to prevent such wars, you can always try to better your relations by gifting them a (if possible badly placed) city, giving you +5 relations (+4 fair trade +1 liberation) and getting most leaders to pleased.
All that said, sometimes these crazy AI attack between turn 40 and 50, and that can be a direct game over without copper.
Seeing that you knew all along Shaka was your neighbour and that you do not have copper, you should have scouted the west to try to find (and grab) copper. There is rarely copper in the jungle (maybe some map-scripts prohibit it?).