Вам нужен SOAP протокол, т.е. адрес для wsdl, для endpoint'а и т.п., обработка пакетов и еще куча свистелок типа аутентификации. Есть спецификация для реализации JAX-WS, Spring-WS если я не ошибаюсь ее имплеметит. Все.
Можно правда выбрать еще cxf как имплементацию JAX-WS (не советую), Axis или Metro.
… А можно использовать штатную реализацию JAX-WS, встроенную в Java (кажется, именно Metro). В версии 6 она точно есть. Позволяет взять POJO и тупо экспонировать как SOAP web service. CXF тоже неплох.
Metro входит в Glassfish, другие сервера приложений, могут иметь свои собственные имплементации JAX-WS. Т.е. немного не правильно говорить про «штатную реализацию» :) Штатная у J2ee только спецификация…
А что за реализация JAX-WS в самой JRE6 тогда? Потому что хорошо помню — делал POJO, потом его выставлял как SOAP WS при помощи нескольких строчек кода, а GlassFish на моей машине и не ночевал.
Говоря об альтернативах, например та же CXF (остальные даже не рассматриваю), так они в принципе идентичны со Spring-WS, просто в моем случае вопрос выбора даже не стоял. А вообще среди преимуществ CXF можно отметить возможность использования contract last, однако это мало кому действительно понадобится.
У меня есть одно замечание. На самом деле схему можно тоже в ручную не писать а сгенерировать через JAXB. Достаточно аннотировать классы как сериализуемые через JAXB и сгенерировать схему через стандартный механизм в Eclipse.
SOAP Web-сервис средствами Spring-WS