Я могу рекомендовать Вам библиотеку CXF. Используя его у Вас будет несколько опций для вызова веб-сервисов:
Использование динамический прокси для вызова (не должны делать тупики Java с помощью wsdl2java).
DynamicClientFactory dcf = DynamicClientFactory.newInstance();
Client client = dcf.createClient("http://admin:password@localhost:8080"+
"/services/MyService?wsdl");
Object[] a = client.invoke("test", "");
System.out.println(a);
Используя тупик Java, сгенерированный от WSDL, с помощью wsdl2java.
, Если Ваш сервер был создан с помощью CXF, можно снова использовать интерфейсный код непосредственно (вместо того, чтобы использовать wsdl2java на WSDL, который был создан из интерфейса!)
И для № 2 и для № 3, следующий код иллюстрирует использование CXF:
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setAddress("http://admin:password@localhost:8080/services/MyService");
factory.setServiceClass(ITest.class);
ITest client = (ITest) factory.create();
client.test();
В зависимости от которой версии JAVA Вы используете, часть JAX-WS встроена в него. JDK 6 имеет стандартную реализацию JAX-WS Java, и Вы могли просто использовать его.
Посмотрите следующее:
, Начинающие с веб-сервисами JAX-WS (учебное руководство для использования JDK встроенный JAX-WS для развертывания и потребления веб-сервиса)
Если Вы не можете ослабить свое "стороннее требование" библиотек, и у Вас есть WSDL для веб-сервиса тогда, Ось делает его действительно легким. Просто скомпилируйте WSDL с помощью wsdl2java, и можно использовать сгенерированные классы Java для потребления веб-сервиса.
Не пользуясь никакими сторонними библиотеками? Узнайте стандарт SOAP действительно хорошо и учитесь любить SAX.
, Если Вы не можете любить SAX, тогда слабый Ваше no-third-party-libs требование, и использовать StAX (с woodstox) вместо этого.
Этот подход мог бы быть "самым легким" (рассмотрение no-third-party-libs требования), но я не думаю, что это будет легко .