Spring-ws: Mehrere Endpunkte/wsdl/xsd/you-name-it
Info: ich bin mit Spring-ws 1.5.9 und Spring 2.5.6
Ich bin derzeit in den Prozess der erstellen eine Menge von web-Dienstleistungen und habe ein paar Fragen auf, wie die Architektur sein soll.
Rechts jetzt habe ich einen einzigen web-service. Es (natürlich) enthält eine einzige wsdl-und eine einzelne Endpunkte und so weiter.
Ich bin derzeit auf der Erweiterung der web-service -, und dort habe ich erstellt, einem anderen xsd -, auto-gen-code mit JAXB2 (xjc) und so weiter.
Nun, wie soll ich mit diesen umgehen xsds, wsdl (- s), code und so weiter? Ich kann nicht sehen, was Spring-ws empfiehlt...
Mein Architekt würde gerne eine einzige wsdl, die erreicht werden kann mit dem folgenden:
<bean id="schemaCollection" class="org.springframework.xml.xsd.commons.CommonsXsdSchemaCollection">
<property name="xsds">
<list>
<value>one.xsd</value>
<value>two.xsd</value>
</list>
</property>
<property name="inline" value="true"/>
Ist dies ein guter Weg, dies zu tun? Ich werde am Ende mit, wie 10-15 web-services damit eine große wsdl.
Wie über Endpunkte? Sollte ich einen einzelnen Endpunkt und test für die Art der Anfrage (z.B. mittels der instanceof -)? Ich denke mir, dass mit einem Endpunkt-Zuordnung zu einer Anfrage ist eleganter/sauberer.
Schließlich, was ist marshalling? Ich habe diese (mit einem ws/schema):
<oxm:jaxb2-marshaller id="marshaller" contextPath="mydomain.signals.one.v1_0.schemas"/>
<oxm:jaxb2-marshaller id="unmarshaller" contextPath="mydomain.signals.v1_0.schemas"/>
Aber, wie sollte ich ein anderes schema?? Ich versuche so etwas wie das folgende, das scheint nicht zu funktionieren für mich jetzt:
<bean id="marshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
<property name="contextPaths">
<list>
<value>mydomain.signals.one.v1_0.schemas</value>
<value>mydomain.signals.two.v1_0.schemas</value>
</list>
</property>
</bean>
Ich hoffe, das macht Sinn. Was ich Streben ist es, Hinweise und Tipps, was ich tun sollte.
InformationsquelleAutor sunlock | 2011-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie 10-15 web services es gibt keinen Weg, um nicht mit einer riesigen wsdl. Wenn das Ziel ist, eine einzige wsdl, was Sie tun, scheint akzeptabel.
Ich würde lieber Endpunkte für jede Anforderung.
Außerdem haben Sie versucht, mit einem Doppelpunkt getrennte Liste von Werten für den Kontext-Pfad? Also, nicht verwenden Sie die Liste, nur noch eine lange Schnur mit jeder context-Pfad, getrennt durch Doppelpunkte.
Aus der Spring-WS-Dokumentation:
Ich weiß, dass die passage ist für Jaxb1 aber ich bin mir ziemlich sicher, dass es noch für die Jaxb2Marshaller. Ich denke Sie würden nur die Verwendung der list-Variante, wenn Sie waren die Angabe von Klassen.
http://static.springsource.org/spring-ws/site/reference/html/oxm.html
Es ist nicht die elegantesten aussehende Ding, aber wenn Sie setzen einfach jeweils eine neue Zeile, sollte es immer noch ziemlich lesbar.
InformationsquelleAutor AHungerArtist