Szenario:Wie mische ich Namespace-Generierung in SOAP :: Lite?
- Der Client ist ein Perl-Skript SOAP::Lite verwenden.
- Der Server ist eine Java-basierte Anwendung, die Spring und CXF verwendet.
Mein Kunde ist dabei die folgende SOAP-Anforderung auf der WSDL basiert:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<createFolder xmlns="http://xyz.com/">
<parentId xsi:type="xsd:string">1</parentId>
<folderName xsi:type="xsd:string">Test</folderName>
</createFolder>
</soap:Body>
</soap:Envelope>
Dieser Antrag gegen CXF fehl. Nach mehreren Untersuchungen habe ich herausgefunden, dass die folgende manuell erzeugten Anforderung funktioniert:
<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xyz="http://xyz.com/">
<soap:Body>
<xyz:createFolder>
<parentId xsi:type="xsd:string">1</parentId>
<folderName xsi:type="xsd:string">Test</folderName>
</xyz:createFolder>
</soap:Body>
</soap:Envelope>
Der Unterschied die Namespace-Definition für das Element ist createFolder
.
Meine Frage ist: Wie kann ich SOAPLite konfigurieren, um die funktionierende SOAP-Anfrage zu erstellen?
Oder umgekehrt: Wie kann CXF konfiguriert werden, um den SOAP :: Lite-Anforderungsstil zu akzeptieren?
Es könnte auch ein Konfigurationsproblem von CXF sein. – Philipp