2010-08-23 2 views
1

Я ищу способ легко генерировать SOAP-запросы из файла wsdl. например, примерно следующее:Java-классы для создания SOAP-запросов от wsdl

WSDLObject myWsdl = new WSDLObject("http://www.whatever.com/myService?wsdl"); 
SOAPRequest myRequest = myWsdl.generateSOAPRequest(); 

Есть ли что-нибудь подобное?

Я пытаюсь сделать это динамически с помощью другого приложения, поэтому инструменты, подобные WSDL2Java, не работают для меня (по крайней мере, я думаю). Мне нужно иметь возможность генерировать эти запросы с пользовательского ввода, а затем работать с ними оттуда.

всякая помощь приветствуется.

+0

Не могли бы вы уточнить, когда вы говорите «динамически через другое приложение»? Что должно быть динамичным? Расположение WSDL? – Catchwa

ответ

0

С WSDL2Java уникальным изменением является то, что вы работаете с объектами прокси Java и устанавливаете атрибуты этих объектов для создания запроса SOAP. Другим способом является использование SOAPUI, например, для создания SOAP-сообщения, и напрямую создайте ваше SOAP-сообщение как StringBuffer и напрямую используйте сокет для вызова службы, составляющей полное сообщение HTTP/SOAP с нуля.

1

Пожалуйста, смотрите этот ответ: How to get response from SOAP endpoint?

То, что вы в основном хотят сделать, это использовать wsimport инструмент, который поставляется с JDK. До тех пор, как Java на пути к классам вашей системы, вы должны быть в состоянии пойти на любой терминал или консоль и выполните команду:

wsimport http://www.whatever.com/myService?wsdl -p com.company.whateveruwant -d . -keep 

При выборе опций (-d задает каталог для вывода сгенерированного кода). Это делается, вы можете просто вызвать веб-сервис с помощью автоматически генерируемого кода, например:

CustomInterface soap = new CustomEndpoint().getCustomInterface(); 
System.out.println(soap.getAnswerFromWs("ParamValue")); 
+0

Хм, 'wsimport' неплохой и не расстраивающий инструмент. Удивительно :) Спасибо. – dmitry