2012-04-26 27 views
37

Estoy escribiendo un servicio web usando jax-ws. Uno de los métodos del servicio web devuelve bean, que contiene una referencia a su padre. Para evitar referencias cíclicas, estoy usando JAXB @XMLID y @XMLIDRef anotaciones en mi bean.Manejar JAXB @XMLIDRef en .NET

Luego estoy generando una clase proxy para el cliente java, todo funciona bien y el id se resuelve en las propiedades del objeto. Pero luego estoy generando proxy de cliente de servicio web en Visual Studio para .NET, interpreta idrefs como propiedades de cadena, no como un objeto.

¿Es posible generar clases proxy de wsdl para .NET con la resolución de idrefs?

+2

Parece que .NET prefiere el combo de atributo id/ref. Ver http://stackoverflow.com/a/1617566/278836. Entonces .NET no le gusta el modo Java y Java no le gusta el estilo .NET; al menos fuera de la caja (por lo que puedo decir). También estoy muy interesado en esto, ya que las referencias multiplataforma parecen una característica bastante crítica. –

+1

@ Andrew White gracias por esa referencia. Estoy sentado aquí reflexionando sobre cómo me las arreglé para evitar este lío de interoperabilidad todo este tiempo. Leí ese enlace, que me llevó a este enlace: http://blogs.msdn.com/b/sowmy/archive/2006/03/26/561188.aspx. Quizás la pregunta se reduce a: ¿la técnica descrita es suficiente para permitir la interoperabilidad de .NET/Java? –

Respuesta

1

Fuera de la caja Las herramientas de Microsoft no harán el trabajo por usted. Tendrá que pedirle a Microsoft que cambie las herramientas de generación de wsdl

. Por ejemplo:

En un proyecto reciente que tenía que trabajar en torno a las idas corto de estas herramientas y modificar el código generado utilizando un Básica Script que arregla lo que no se generó de la manera necesaria (en nuestro caso incompatibilidades con la generación wsdl del lado de Java)

+0

Por favor, exponer cómo llegó a su conclusión. –