We've concluded that while SOAP looks _very_ promising for some of what we want to do with our EJB application, it's too steep a learning curve for us to adopt just yet. So what I want to do is make sure that my J2EE design leaves the option of adopting SOAP open for the future.
Here's how I've got it: we already have one Session Bean that provides an XML interface to any other method in any of the other session beans (through a custom-built XML marshaller/serializer, kind of like Castor). Our web layer communicates with this bean and uses XSL to format data in both directions. It works well, though I suppose that optimizing is going to be a lot of fun later on. As I see it, when we need SOAP, I can just build a SOAP interface that attaches to this Session Bean.
But is there anything I should look out for in the architecture design that will make it easier to adopt SOAP later on?