Как я могу поместить HashMap в качестве входных данных в веб-службу Java? - PullRequest
0 голосов
/ 25 апреля 2011

Я получаю эту ошибку:

Класс обслуживания "myclass" не соответствует одному или нескольким требованиям спецификации JAX-RPC 1.1 и может не развертываться или работать неправильно.Метод «mymethod» в классе обслуживания «myclass» использует тип данных «java.util.Map», который не поддерживается спецификацией JAX-RPC.Экземпляры типа могут не сериализоваться или десериализоваться правильно.Это может привести к потере данных или полному отказу веб-службы.

Итак, я не знаю, как использовать этот тип данных, поскольку у меня есть следующие данные:

Map<String, String>[] complex

Я назвал его массивом, потому что Tibco (инструмент интеграции) не мог видеть хэш-карту в качестве различных элементов.

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 25 апреля 2011

В качестве дополнительного примечания: если вы пишете новый веб-сервис, вам следует подумать об использовании умеренно новой технологии. jax-rpc очень устарел и использует кодировки мыла, с которыми очень больно работать. рассмотрите возможность использования jax-ws (встроенной в jdk в наши дни) или некоторых других реализаций веб-сервисов, которые используют буквально-документальную кодировку.

0 голосов
/ 25 апреля 2011

Веб-службы должны быть совместимы между языками программирования, а java.util.Map зависит от Java.Для этого метода вы должны написать фасад, который преобразует содержимое карты в массив.

0 голосов
/ 25 апреля 2011

Map - это интерфейс, поэтому вы не можете его использовать, но вы можете использовать один из поддерживаемых классов реализации ниже:

См. Эту ссылку для поддерживаемых классов реализации - раздел, озаглавленный Поддержка типов JAX-RPC

Поддерживаемые типы: http://sentex.net/~pkomisar/WS/WS_8_JAX-RPC.html

...