2009-10-22 14 views

Respuesta

5

Estuve en su posición hace unos meses y terminé mirando más de cerca a Metro.

La característica más importante para mí fue el hecho de que Metro utiliza anotaciones estándar para exponer un método dado como un servicio web y que todo el código de pegamento podría generarse automáticamente en tiempo de ejecución. Es decir. no hay pasos adicionales para realizar al construir e implementar y funciona en un contenedor servlet estándar (creo que 2.5) en Java 5, que es nuestra plataforma de implementación actual.

Esto ha funcionado muy bien para nosotros.

La razón por la cual fui para las anotaciones estándar es la muy simple que nuestras aplicaciones tienden a vivir literaly durante décadas, después de lo cual debe hacerse algún mantenimiento. Al codificar una interfaz en lugar de una implementación, podemos cambiar todo el andamio debajo del código sin cambiar el código que implementa el servicio web. En diez años (o más), cualquier implementación específica puede haberse marchitado y muerto, pero otras implementaciones pueden haber surgido desde entonces y ser inmediatamente conectables.

Solo vea cuántas opciones tiene hoy para un contenedor de servlets ... ¡Ese es el poder de una buena API!


Editar: Aparentemente el tiempo de ejecución de Java 6 incluye la pila Metro además de un servidor web mínimo. En otras palabras, el JRE solo puede ser el reemplazo de andamiaje mencionado anteriormente: D

+2

+1 por pensar en esos pobres tontos que tendrán que descifrar este código dentro de 10 años. ¡Puede ser uno de nosotros! –

+0

@yar, simplemente esperaba que NO TENÍA que ser yo :) –

+0

AFAIK, Java 6 no incluye Metro, incluye JAX-WS RI, que es un subconjunto de Metro (Metro = JAX-WS + WSIT /Tango). Pero sí, con Java 6, puede publicar un punto final del servicio web a través del método 'Endpoint.publish()', utilizando el servidor HTTP integrado en Java SE 6. Consulte http://www.javapassion.com/webservices/jaxwsjavase6. pdf. –

9

Tanto Metro como CXF son apilamientos de servicio web JAX-WS, y desde una perspectiva de tiempo de ejecución, hay muy poca selección entre ellos.

Sin embargo, CXF tiene ampliamente mejor documentación, y mucha más flexibilidad y funcionalidad adicional si está dispuesto a ir más allá de la especificación JAX-WS. Basándome solo en la documentación, escogería CXF durante el tiempo de Metroevery.

Sin embargo, elegiría Spring WebServices en Metro o CXF. No es compatible con JAX-WS, pero no lo considero un problema. También es considerablemente más simple y considerablemente más flexible que cualquiera de ellos. Muy recomendable.

+0

¿Podría explicarnos un poco sobre la funcionalidad CXF de la que habla y sobre la Spring WS ídem? –

+0

La alegría de CXF y Spring-WS es que puedes ir a sus sitios web y leer la excelente documentación para ver lo que pueden hacer :) – skaffman

+1

Lo sé, es posible que hayas visto que había estado buscando un marco así. Estaba pensando en - como - experiencias reales y cosas que indicaste que tenías y yo tenía la extraña idea de que tal vez incluso querrías compartirlas ... Lástima de mí. –

Cuestiones relacionadas