John has stood there for 5 hours.
John has been standing there for 5 hours.
Is there any difference in meaning between the two sentences? Both actions are unfinished. Both are relevant to the present (John is tired and sweaty and hungry). Are there situations where we'd prefer using one tense over the other?