Как создать и обработать сложный объект, используя jax-ws? - PullRequest
0 голосов
/ 03 ноября 2011

На стороне сервера я создаю объект под названием Fragment. Скажем так, это контейнер данных для некоторых строк.

Простой WebMethod, который принимает String и возвращает другой, довольно прост и прост в реализации. Но если я пытаюсь отправить объект с сервера на клиент, это усложняется. Я публикую WebService и использую wsimport для создания классов-заглушек моего клиента.

Я хочу вернуть клиенту набор фрагментов. wsimport создает класс HashSet, который является типом возврата метода, который вызывает метод соответствующего сервера.

Я не могу привести этот HashSet к стандартному Java-утилите HashSet, как мне обрабатывать такие сложные объекты?

Edit: Это подпись метода, опубликованного веб-сервисом:

@WebMethod
public HashSet<Fragment> topicIntersect(File tm1, String loc1, File tm2,
        String loc2)

Вот что wsimport сгенерировал:

/**
 * 
 * @param arg3
 * @param arg2
 * @param arg1
 * @param arg0
 * @return
 *     returns webservice.HashSet
 */
@WebMethod
@WebResult(partName = "return")
public HashSet topicIntersect(
    @WebParam(name = "arg0", partName = "arg0")
    String arg0,
    @WebParam(name = "arg1", partName = "arg1")
    String arg1,
    @WebParam(name = "arg2", partName = "arg2")
    String arg2,
    @WebParam(name = "arg3", partName = "arg3")
    String arg3);

webservice.HashSet - это также сгенерированный пустой класс без методов ...

1 Ответ

1 голос
/ 07 ноября 2011

Я не уверен, поддерживает ли JAX-WS HashSet напрямую.Однако List, безусловно, будет работать.Кроме того, если вы используете подход, основанный на коде, вам не нужно создавать заглушки клиента.Вы должны иметь возможность использовать тот же интерфейс, который реализует ваша служба.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...