Pregunta

public class Pojo {
   private String value;

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

Me gustaría volver esto desde un servicio web de la siguiente manera:

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

Parece que no puede encontrar la respuesta definitiva sobre si me puede, debe, no puede, o no debería hacerlo.

¿Fue útil?

Solución

Sólo los datos se envían a través del alambre. Los métodos estáticos o no estáticos no se envían.

Si en el lado receptor que enlazar los datos a la misma clase - bien, tiene sus métodos de vuelta, pero jabón tiene nada que ver con él, es su propio engaño. Los clientes escritos en otros idiomas (C #, Python, ...) no van a tener su método, por supuesto.

P.S. La clase de cualquier objeto que va a enviar de vuelta siempre se dispone de métodos. Su Pojo es una subclase del objeto implícitamente, y por lo tanto tienen toString (), hashCode (), y así sucesivamente. JAX-WS no le importa.

Otros consejos

No. Piense en esto:

  1. Los servicios Web están destinados a ser independiente de la plataforma
  2. ¿Qué se envía a través del cable es simplemente XML (o algún otro formato) de datos

Entonces, ¿cómo podrán enviar a través del cable de un método estático? ¿Cómo los clientes no-Java ser capaz de interpretar la respuesta de su servicio web?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top