validieren von wsdl/schema mithilfe von cxf
Ich habe eine harte Zeit bekommen, cxf, um die Validierung einer xml-Anfrage, dass mein Dienst erstellt für eine 3rd-party.
Mein Projekt nutzt maven. Hier ist mein Projekt Struktur
Haupt-Modul :
+ Sub-Modul1 = Anwendung
+ sub-Modul2 = Schnittstellen
Schnittstellen, innen src/main/resources habe ich meine wsdl-und xsd.
also src/main/resources
+ mywsdl.wsdl.
+ myschema.xsd
Das interface-Submodul ist als Abhängigkeit angegeben in der Anwendung-sub-Modul.
innen-Anwendung, sub-Modul, es ist ein cxsf-Datei in src/verstümmeln/resources.
<jaxws:client name="{myTargerNameSpaceName}port"
createdFromAPI="true">
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:client>
UND:.
<jaxws:endpoint name="{myTargetNameSpaceName}port"
wsdlLocation="/mywsdl.wsdl"
createdFromAPI="true">
<jaxws:properties>
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
Ich habe versucht, ändern Sie die "name="{myTargetNameSpaceName}port" zu "name="{myEndPointName}port"
Aber keinen Amboss.
Meine Anwendung funktioniert. Aber es ist einfach nicht überprüft das xml, das ich produziere, muss verbraucht werden durch eine 3rd-party-Anwendung.
Ich möchte, um die Validierung zu arbeiten, so dass jede Anfrage, die ich senden würde, eine gültige ein.
Irgendwelche Vorschläge?
InformationsquelleAutor SGB | 2010-04-05
Du musst angemeldet sein, um einen Kommentar abzugeben.
Stellen Sie zuerst sicher, dass der Wert des name-Attributs ist {NAMESPACE}PORT_NAME, wo NAMESPACE den namespace-URI und PORT_NAME ist der name der WSDL-port. Ohne zu sehen, Ihre WSDL, ich weiß nicht, ob Sie Ihren Namen WSDL-port "port" oder wenn Sie damit nur eine sanitized Beispiel.
Beispielsweise meine WSDL-namespace ist "http://example.com/services" und den Namen meiner WSDL-port-element ist "myPort", die Spring-Konfiguration würde wie folgt Aussehen
Siehe "CreatedFromAPI" Attribut Beschreibung in CXF docs
Wenn das nicht Ihr problem lösen, versuchen Sie die wsdl_first Beispiel-code, aktualisieren Ihre CXF-version, und/oder posten Sie Ihre Frage mit dem test-code demonstriert mit Ihrem Problem an die CXF-Benutzer-Liste.
InformationsquelleAutor DavidValeri
Fügen Sie einfach
@org.apache.cxf.annotations.SchemaValidation
Anmerkung zu Ihrem service Umsetzung-Klasse und die schema-Validierung funktioniert.InformationsquelleAutor Paulius Matulionis
Hatten wir ähnliche Probleme. CXF 2.3.1 behebt das Problem für uns auf eingehende Nachrichten, aber nicht die ausgehenden Nachrichten.
https://issues.apache.org/jira/browse/CXF-3233
Wir arbeiten, um es durch Marshalling die Nachrichten und überprüfen Sie Sie im server, bevor Sie durch die CXF-interceptor-Kette. Wir überprüfen mit org.springframework.xml.die Validierung.XmlValidator.
Ich hoffe, dass eine zukünftige version von CXF lösen wird, aber das ist das, was wir jetzt tun.
InformationsquelleAutor BPS