This is essentially a function of your load balancer. If the JBoss AS instances are clustered and the webapps are marked distributable, then your sessions will be replicated and will be available on either node.
What makes it active/passive is the fact that your load balancer sends all the requests to server A unless it's not available. This can be configured easily if you are using mod_jk as your load balance; in workers.properties, you mark on worker as "disabled" and the other as not.
worker.node1.disabled=true ..... worker.node2.disabled=false
A disabled worker will not receive requests except for:
1) If no non-disabled workers are available (i.e. active/passive)
2) OR a sticky session is associated with the worker (i.e. if you disable a worker that was enabled, it will continue to handle its existing sessions until they bleed off. This allows you quiesce a running server before shutting it down.)
Obviously, if you start node1 with disabled=true, it will have no existing sessions, so only #1 applies.