Использование пользовательского класса в качестве типа возврата JAX-WS? - PullRequest
7 голосов
/ 17 мая 2011

Я использую инструменты создания веб-служб NetBeans.Я посмотрел доступные учебники, но не могу найти ничего о том, как использовать пользовательский класс в качестве возвращаемого типа.Большинство уроков, которые я прочитал, не более сложны, чем Hello World: они принимают и возвращают простые типы, такие как Strings.

Итак, я хочу, чтобы у класса было 3 поля: String, int и double[].Пока что единственный способ передать свои собственные классы - это создать «классы-конверты» без методов, конструктор без параметров и все поля, объявленные общедоступными.Я бы предпочел писать стандартные классы Java.Очевидно, что я не могу отправить методы через SOAP, но я бы подумал, что есть способ игнорировать методы, когда маршаллизирует класс, и только маршаллизировать поля.но я не могу найти учебники о том, как их реализовать.Любое руководство будет с благодарностью.

Ответы [ 2 ]

5 голосов
/ 17 мая 2011

Если вы используете интерфейс NetBeans для разработки своего ws.

  • Нажмите на добавление новой операции

enter image description here

  • Выбратьтип возврата, найдите свой класс (как показано)
4 голосов
/ 17 мая 2011

JAX-WS использует JAXB для типов отображения, поэтому классы должны соответствовать этой спецификации.Аннотации JAXB можно найти в пакете java.xml.bind.annotations .

Если вы хотите упорядочить неаннотированный класс, должны работать правила для JavaBeans:

public class Foo {
  private String bar;
  public String getBar() { return bar; }
  public void setBar(String bar) { this.bar = bar; }

  public static void main(String[] args) {
    Foo foo = new Foo();
    foo.setBar("Hello, World!");
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    JAXB.marshal(foo, out);
    foo = (Foo)
        JAXB.unmarshal(new ByteArrayInputStream(out.toByteArray()), Foo.class);
    System.out.println(foo.getBar());
  }
}

Если вы хотите использовать конструкторы с аргументами и т. Д., Посмотрите на части spec о фабричных методах и адаптерах.

...