Основанный на SOAP интерфейс веб-сервиса с Hasmap в качестве входного параметра - PullRequest
1 голос
/ 15 ноября 2011

Я пытаюсь создать веб-сервис на основе SOAP, в котором в качестве входных данных будет использоваться Hashmap?

Кто-нибудь пробовал это раньше?Какие проблемы это может вызвать?

Каков наилучший способ обработки ввода как Hashmap или List?

Спасибо за ответ.

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Пример CXF java_first_jaxws:

http://svn.apache.org/repos/asf/cxf/trunk/distribution/src/main/release/samples/java_first_jaxws/

и пример того, как "правильно" обрабатывать Карты (и другие производные типы интерфейса) с JAX-WS / JAXB.По сути, вам нужно создать XmlAdapter, который преобразует карту в типы, которые JAXB может полностью отобразить.Затем JAXB будет автоматически использовать эти адаптеры во время выполнения для сопоставления с типами, которыми он доволен.В результате вы получаете полный контроль над результирующей схемой / wsdl (поэтому вам не нужно иметь общие имена элементов «ключ» и «значение»), а также получаете удобство использования Карт.

2 голосов
/ 18 ноября 2011

Нашел решение, чтобы иметь HashMap в качестве входных данных для конечной точки WebService.

Если вы определите HashMap непосредственно во входных данных, тогда XSD не будет отображать его должным образом, а WSDL не будет легко понятен.1004 * Итак, определите входной класс и добавьте HasMap в качестве атрибута, который вы планировали использовать в качестве входного.

Class A
{
 HasMap inputData;

 //Add the Getter and Setter
}

Имейте класс A при вводе в метод Webserivce.Теперь ваш WSDL будет иметь HasMap с парой ключ / Vlue.

...