puede JAX-WS métodos web devuelven objetos que tienen métodos estáticos?
-
13-09-2019 - |
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.
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:
- Los servicios Web están destinados a ser independiente de la plataforma
- ¿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?