Je publie un service web SOAP en utilisant Spring-WS et je voudrais connaître l'approche pour concevoir un WSDL. Si mon service doit comptabiliser quatre opérations (comme démarrer, mettre à jour, suspendre et redémarrer un service), dois-je avoir un WSDL avec une opération (par exemple, EntertainmentService) et prendre les opérations en tant qu'attribut de requête ou devrait Je définis un WSDL avec plusieurs opérations.Conception de service SOAP Spring-WS - Opérations One vs Multiple
<request>
<type><!-- start | update | suspend | restart --></type>
<name></name>
<address></address>
<services>
<tv></tv>
<internet></internet>
<phone></phone>
</services>
Si la suggestion est d'aller avec un WSDL avec plusieurs opérations, comment puis-je préciser la liste des opérations au printemps-WS. Actuellement, mon contexte de servlet de ressort a une DefaultWsdl11Definition et WSDL est généré au moment de l'exécution.
<bean id="EntertainmentService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition" lazy-init="true">
<property name="schema">
<bean class="org.springframework.xml.xsd.SimpleXsdSchema">
<property name="xsd" value="/WEB-INF/schemas/entertainmentService.xsd"/>
</bean>
</property>
<property name="portTypeName" value="EntertainmentService"/>
<property name="locationUri" value="/endpoints"/>
</bean>
Si toutes les quatre opérations utilisent le même WSDL, est beaucoup plus facile pour le client (en utilisant le service Web) pour faire une seule opération (avec différents) que de faire des appels à de multiples opérations. Y a-t-il un avantage à la seconde approche (avec une opération différente pour chaque type de requête)?
Merci pour votre réponse. Quand vous dites "si vous changez votre xsd", vouliez-vous dire avoir un xsd différent pour chaque opération et lier cela pour chaque wsdl? – aprajitha
@aprajitha Je n'ai jamais utilisé la partie wsdl dynamique de spring mais si dans javadoc vous pouvez spécifier un fichier xsd ou une collection de fichiers xsd. Donc, la réponse à votre question est oui. – VirtualTroll