Ist es in einfacher Weise möglich, eine Zeichenfolge innerhalb eines cdata-Tags ohne auslaufende Zeichen zu senden? Ich verwendete @ XmlCDATA-Tag für diesen String und es ändert seinen Wert zu, wenn ich Marshaller verwende. Aber wenn ich Request an SoapUI senden möchte, fügt es das nicht hinzu. Wenn ich dieses Tag manuell hinzufüge (zum Beispiel im Setter), entkommt es Zeichen.Java-Web-Service-Client cdata-Tag
Beispiel: Wenn ich Einweiser verwende ich bekommen:
<?xml version="1.0" encoding="UTF-8"?>
<getRequest xmlns="pl/nosd/Get">
<ClientNumber>
<![CDATA[<CLIENT_NUMBER>]]>
</ClientNumber>
</getRequest>
Und das ist richtig.
Aber wenn ich dies senden möchten, mit Service soapUI:
sync_Customer_Service = new Sync_Customer_Service();
Customer_PortType customer_PortType = sync_Customer_Service.getCustomer_HTTPSPort();
GetRequest getRequest = new GetRequest();
getRequest.setClientNumber("<CLIENT_NUMBER>");
customer_PortType.get(getRequest);
i erhalten:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:GetRequestMessage xmlns="pl/nosd/Get" xmlns:ns2="http://pl/nosd/Get/xsd">
<ClientNumber><CLIENT_NUMBER></ClientNumber>
</ns2:GetRequestMessage>
</S:Body>
</S:Envelope>
Ich habe jaxb.properties Datei mit: javax.xml.bind.context.factory = org.eclipse.persistence.jaxb.JAXBContextFactory
und ich fügte @XMLCdata Anmerkung zu GetRequest Klasse:
public class GetRequest {
@XmlCDATA
@XmlElement(name = "ClientNumber", required = true)
protected String clientNumber;
public String getClientNumber() {
return clientNumber;
}
public void setClientNumber(String value) {
this.clientNumber = value;
}
Service- und PortType-Klassen wurden von jdeveloper mithilfe der Web-Service-Proxy-Option generiert.
Was ist der Punkt CDATA mit anstelle einer entgangene Zeichenfolge? Dies sind zwei Darstellungen für die gleichen Daten. – vanje
System, ich sende Anfrage zu erwartet, dass Formular. – krzysiek