Как выполнить вызов SOAP в Java

Это кажется, что должно быть просто, но возможно я пропускаю что-то. Я просто хочу выполнить вызов SOAP в Java, предпочтительно с помощью только встроенные API. Я немного поражен, смотря javax.xml.soap на пакет в документации Java. Я попытался искать Google, но кажется, что все результаты с 2000-2002, и они все говорят о библиотеках, которыми можно пользоваться для вызовов SOAP (прежде чем библиотеки SOAP были встроены, я предполагаю).

Я не должен обрабатывать запрос SOAP; только сделайте тот. Этот сайт имеет пример, который довольно прост, но он не пользуется встроенными библиотеками Java SOAP. Как я сделал бы в основном то же самое с помощью базового Java?

// Create the parameters
Vector params = new Vector(  );
params.addElement(
    new Parameter("flightNumber", Integer.class, flightNumber, null));
params.addElement(
    new Parameter("numSeats", Integer.class, numSeats, null));
params.addElement(
    new Parameter("creditCardType", String.class, creditCardType, null));
params.addElement(
    new Parameter("creditCardNumber", Long.class, creditCardNum, null));

// Create the Call object
Call call = new Call(  );
call.setTargetObjectURI("urn:xmltoday-airline-tickets");
call.setMethodName("buyTickets");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
call.setParams(params);

// Invoke
Response res = call.invoke(new URL("http://rpc.middleearth.com"), "");

// Deal with the response

10
задан Jenni 27 January 2010 в 17:38
поделиться

1 ответ

SOAP многое изменилось с первых дней. Вы можете делать такие вещи, как то, что вы описываете, но не распространено.

Теперь более распространенная практика - использовать инструмент WSDL2JAVA для создания клиентского API из описания WSDL службы. Это даст вам хороший, чистый, API, чтобы позвонить.

Apache CXF - одно место, чтобы пойти на эту вещь.

Один Proviso - RPC / кодируется. Если вы имеете дело со старым сервисом, это может быть RPC / кодировано, и в этом случае ваша лучшая ставка Apache Axis 1.x. Все остальное убегало от RPC / кодировано.

4
ответ дан 4 December 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: