Active duty soldier won't train (need to stick them into off duty).
For crossbow, make sure their off-hand (the hand not holding the crossbow) isn't holding anything else. If their off-hand is holding anything else, they'll never train or fire their crossbow (they're not smart enough to drop it, so dump it).
Check if your soldiers are idle. If they're not, they're probably constantly busy doing something (storing items, sleeping, eating, drinking, partying).
Try the following.
1. Double check barrack assignment, make sure they're barrack and not just unassigned rooms.
2. Make sure your barrack is big enough (in my experience 11x11 seems like a good size). And make sure your archer range is long enough and facing the right direction (minimum is 3, the target, a floor, and the dwarf, but I always use 5).
3. Dump EVERYTHING the dwarf is holding in their hand. If you have spare weapon and gloves, the dwarf should re-equip themselves fine.
4. Make sure your soldier are off-duty (and even if they're try cycling to on-duty then to off-duty, maybe it will reset something).
5. Cycle them out of fortress guard/soldiering then cycle back (again, maybe it reset something).