tengo una clase en el lado del servidor: ForumEntry, y tengo un servicio web que devuelve una lista de ForumEntry:¿Cómo reutilizar la clase del servidor en el cliente JAX-WS?
@WebService(name="ForumGeneral",serviceName="ForumGeneralService")
public class ForumGeneralService {
@WebMethod
public List<ForumEntry> getLatestTopics(String keyword,int count){
...
}
}
Al utilizar wsimport para generar el cliente de servicio web, que termina bien, pero un nuevo tipo ForumEntry de creé basado en el servicio web. Eso tiene sentido, ya que la naturaleza del servicio web es que los lados del cliente y del servidor están desacoplados.
Pero, ¿qué ocurre si quiero volver a utilizar ForumEntry del lado del servidor y evitar crear una clase ficticia del lado del cliente?
Encontré una publicación: http://jamablog.blogspot.com/2007/08/how-to-make-jax-ws-client-reuse_22.html.
Siga la idea, he añadido anotaciones JAXB a mi servidor de clase ForumEntry lado:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "forumEntry", propOrder = {
"forumId",
"forumName",
})
public class ForumEntry
luego se usa schemagen para generar el archivo episodio, luego pasarla a wsimport con el parámetro -b. Pero tengo un problema que el archivo episodio generado tiene entradas para 'forumEntry':
[ERROR] SCD "~forumEntry" didnt match any schema component
supongo que significa 'forumEntry no es aparecer en WSDL, que está justo:
<message name="getLatestTopics">
<part name="parameters" element="tns:getLatestTopics"></part>
</message>
<message name="getLatestTopicsResponse">
<part name="parameters" element="tns:getLatestTopicsResponse"></part>
</message>
Entonces, ¿cómo hacer todo las piezas encajan juntas aquí, para reutilizar la clase del lado del servidor?
gracias, pero podría ser más específico? Devolveré una lista, mientras que FourmEntry es un tipo. ¿Cómo pueden ambos lados usar la clase Forumentry? Gracias. – Andrew
Tendría que generar la clase ForumEntry en el lado del cliente y usar eso. –
Aunque esta pregunta es antigua, pero tengo una pregunta similar. El problema es que ya tengo un montón de código del lado del servidor usando algunas clases como tipos de datos, y también un montón de métodos de utilidad en esas clases. Si el lado del servidor cambia para usar la clase generada por el cliente, sería un trabajo importante ... –