SOAP y primavera
Pregunta
He lectura acaba de terminar sobre el jabón a través de primavera-WS en la "Primavera en Acción", segunda edición, de Craig Walls de Manning Publicaciones Co. Ellos escriben sobre Contrato En primer lugar, al igual que los documentos de la primavera, con la fabricación de un mensaje y método XML y transformando luego de que a XSD y luego otra vez a WSDL, mientras que el cableado de la trayectoria de clasificación y el servicio en la primavera.
he de reconocer, no estoy convencido. ¿Por qué es este un camino mejor que, digamos, por lo que una interfaz de servicio y la generación de mi servicio basado en la interfaz? Eso es bastante cerca de la definición de mis @Controllers descansar en Spring3. ¿Tengo opciones de ir un camino como éste con la fabricación de servicios web SOAP con la primavera?
También: Me gustaría duplicar un servicio web ya existente. Tengo su WSDL y puedo tener mi servicio colocado en vez de él. Se recomienda esto en absoluto? Si es así, ¿cuál es el enfoque que se recomienda?
Saludos
Nik
Solución
Creo que debe haber cables enredados.
primeros mediosContrato definir un WSDL y, a continuación, crear código Java para apoyar este WSDL.
Contrato últimos medios creación de su código Java, y la generación de un WSDL más tarde.
El peligro con un contrato última es si su WSDL se genera automáticamente a partir del código de Java, y que refactorizar el código Java, esto hace que el WSDL para el cambio.
Primavera-WS sólo es compatible con contrato primero
2.3.1. Fragilidad
Como se mencionó anteriormente, la contrato-último estilo de desarrollo resultados en su contrato de servicio web (WSDL y XSD tu) que se generan de su contrato de Java (por lo general una interfaz). Si está usando este enfoque, se tendrá ninguna garantía que la constante de estancias de contratos sobre hora. Cada vez que cambie de Java contrato y volver a implementarlo, podría ser los cambios posteriores en la web contrato de servicio.
Adicionalmente, no todas las pilas de SOAP generar el mismo contrato de servicio web de un contrato de Java. Esto significa cambiando la pila de jabón corriente para una uno diferente (por cualquier razón), También podría cambiar su servicio web contrato.
Cuando cambia un contrato de servicios web, usuarios del contrato tendrán que ser instrucciones para obtener el nuevo contrato y potencialmente cambiar su código para adaptarse a cualquier cambio en la contrato.
Para que un contrato sea útil, que debe permanecer constante durante el tiempo que posible. Si un contrato cambia, tendrá que ponerse en contacto con todos los usuarios de su servicio, y darles instrucciones para obtener la nueva versión del contrato.
Otros consejos
punto de kit de herramientas sobre las interfaces Java siendo más frágil es correcta, pero creo que hay más.
Al igual que hay una falta de concordancia objeto-relacional, también hay una falta de coincidencia de objetos en XML. Los documentos de servicios web primavera hacen un buen trabajo de explicar cómo las colecciones y el resto puede hacer que la generación de un documento XML a partir de una problemática de clase Java o .NET.
Si se toma el enfoque de la primavera y empezar con un esquema que va a estar mejor. Va a ser más estable, y que va a permitir "duck typing". Los clientes pueden ignorar elementos que no necesitan, por lo que puede cambiar el esquema mediante la adición de nuevos elementos sin afectar a ellos.