веб-методы jax-ws могут возвращать объекты, которые имеют статические методы? - PullRequest
0 голосов
/ 23 сентября 2009
public class Pojo {
   private String value;

   public static void printValue() {
      System.out.println("value=" + value);
   }
}

Я бы хотел вернуть это из веб-службы следующим образом:

@WebService
public class MyService {
   @WebMethod
   public Pojo getPojo() {
      return new Pojo();
   }
}

Не могу найти окончательного ответа на вопрос, могу ли я, должен, не могу или не должен.

Ответы [ 2 ]

2 голосов
/ 23 сентября 2009

Только данные отправляются по проводам. Статические или нестатические методы не отправляются.

Если на принимающей стороне вы связываете данные с одним и тем же классом - хорошо, у вас есть методы обратно, но SOAP не имеет к этому никакого отношения, это ваш собственный обман. Конечно, у клиентов, написанных на других языках (C #, python, ...), не будет вашего метода.

P.S. Класс любого объекта, который вы отправляете обратно, всегда имеет методы. Ваш Pojo неявно наследуется от Object, поэтому у него есть toString (), hashCode () и так далее. JAX-WS не волнует.

1 голос
/ 23 сентября 2009

Нет. Подумай об этом:

  1. Веб-сервисы должны быть независимыми от платформы
  2. То, что передается по сети, - это просто данные XML (или другой формат)

Так как бы вы могли посылать по проводам статический метод? Как не-Java-клиенты смогут интерпретировать ответ вашего веб-сервиса?

...