Я был на вашем месте несколько месяцев назад и в итоге стал смотреть на Метро поближе.
Для меня особенность убийства заключалась в том, что Metro использует стандартные аннотации для предоставления данного метода в качестве веб-службы и , чтобы весь код клея мог генерироваться автоматически во время выполнения. То есть никаких дополнительных шагов при сборке, развертывании и работе в стандартном контейнере сервлетов (я полагаю, 2.5) в Java 5, которая является нашей текущей платформой развертывания, не требуется.
Это очень хорошо сработало для нас.
Причина, по которой я обратился к стандартным аннотациям , заключается в том, что наши приложения, как правило, живут буквально в течение десятилетий, после чего требуется некоторая поддержка. Кодируя интерфейс вместо реализации, мы можем поменять все леса под кодом без изменения кода, реализующего веб-сервис. Через десять лет (или более) любая конкретная реализация, возможно, засохла и умерла, но с тех пор другие реализации могли подняться и быть немедленно подключаемыми.
Посмотрите, сколько вариантов у вас есть сегодня для контейнера сервлета ... В этом сила хорошего API!
Редактировать: Очевидно, среда выполнения Java 6 включает в себя стек Metro и минимальный веб-сервер. Другими словами, одна JRE может быть заменой лесов, упомянутых выше: D