Pregunta

¿Cuál es el mejor enfoque para el desarrollo de servicios web; Primer contrato o contrato durar?
¿Cuáles son las ventajas y desventajas de cada uno?

¿Qué tiene usted experiencia con?

Editar Esta pregunta se refiere a la implementación de un servicio web (es decir: SOAP) La pregunta es si las clases de implementación debe codificarse primero y el esquema WSDL y XSD generados a partir de ese (último contrato) o el WSDL y esquema XSD escrito por primera vez y las clases de implementación genera (primer contrato)

¿Fue útil?

Solución

Contrato-primera es la generalmente aceptada 'mejores prácticas'.

Te hace estar muy claro tanto con el productor y el consumidor del servicio exactamente lo que se necesita y lo que se espera. Esto es especialmente importante cuando se inicia tratando de convertir los tipos de Java -> tipos XML. También es capaz de reutilizar esquemas a través de diferentes servicios web.

Otros consejos

He usado ambos enfoques. Mi sugerencia es utilizar primer contrato esquema, pero código primero WSDL.

Creación de un archivo WSDL tiene una gran cantidad de matices extraños como fijaciones, puertos y tal. Prefiero tener este hecho por las herramientas en lugar de con la mano. Hay herramientas para ayudar a hacer esto, pero ninguno de ellos son más simples que

@WebService
public ...

Por lo menos se puede verificar su implementación.

En el esquema, me sugirió primer contrato porque el lenguaje XML Schema es mucho más rica que lo que se puede describir en Java. Un ejemplo que suelo dar está demostrando que el esquema XML puede restringir el tamaño de una cadena y aplicar un patrón de expresión regular. Hacer eso en Java y anotaciones se ve un poco más desordenado.

Otra de las ventajas de hacer el esquema como primer contrato es la presencia de herramientas para convertir el archivo de esquema en la documentación HTML.

La herramienta XJC puede generar los archivos de clases requeridas. Sin embargo, sólo recomendaría haciendo que al principio.

Al final, usted debe tomar el archivo WSDL generado y trabajar con ese lugar. De esa manera usted puede utilizar wsimport y verificar que todo el asunto de WSDL para el esquema es válido.

Se pueden implementar con el archivo WSDL utilizando el atributo wsdlLocation en su aplicación @WebService y el servidor de aplicaciones va a arreglar los datos de unión para que cuando los usuarios solicitan el WSDL del servidor, pero que aún conservan sus anotaciones. De lo contrario sus anotaciones no aparece en los archivos WSDL solicitados.

Sospecho que la respuesta es un "depende".

El problema es que si se construye y publicar su contrato, que está obligado por ella. Esto hace más difícil cambiar. por no decir imposible, pero es más difícil.

Por otro lado, es más rápido que meterse con el contrato que con el código, si se siente cómodo con los esquemas, etc. Por lo que puede hacer un poco de cambio incremental en el contrato.

¿No hay también herramientas que van a generar un esqueleto de código desde el WSDL? Estoy casi seguro que hay. Si es así, puede hacer bien para hacer los esquemas del tema "código", y generar el código de la misma.

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