Annotations vs. Interoperability?
Steve Loughran, author of the interesting article Rethinking the Java SOAP Stack, has an excellent point when he says:
…everyone still falls for the lie that adding@WebServiceor[WebService]makes your class interop. Nobody would realistically do an enterprise application with the database table bindings defined by the developers, declared in the EJB annotations and magically interpreted by the runtime—yet nearly everyone is prepared to let the Web Services stack do that for messages.
I couldn’t agree more! Annotations are great for adding metadata to classes, but not for transparently adding behavior. Doing so will decrease flexibility (and therefore interoperability), which is really important in larger enterprise applications.