Ho sviluppato un servizio Web e l'ho implementato con Axis. Tutto sta funzionando molto bene ma ho un problema quando consumo il servizio usando una stringa che contiene un carattere non stampabile (come ETX, FS, ..). Ho il seguente errore:caratteri XML non validi/Asse
exception: java.lang.IllegalArgumentException: The char '0x1c' after '....' is not a valid XML character.
avete qualche idea per favore?
edit:
devo inviare un frame al mio server utilizzando il servizio web. Mio telaio ha una forma rigida (contenente alcuni carattere non stampabile come separatore)
class Automate {void checkFrame(String frame){// checking the frame}}
file WSDL
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:part element="impl:checkFrameResponse" name="parameters"/>
<wsdl:part element="impl:checkFrame" name="parameters"/>
<wsdl:operation name="checkFrame">
<wsdl:input message="impl:checkFrameRequest" name="checkFrameRequest"/>
<wsdl:output message="impl:checkFrameResponse" name="checkFrameResponse"/>
</wsdl:operation>
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="checkFrame">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="checkFrameRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="checkFrameResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:port binding="impl:AutomateSoapBinding" name="Automate">
<wsdlsoap:address location="http://localhost:8080/Gateway/services/Automate"/>
</wsdl:port>
Non riesco a sfuggire a quei personaggi che mi servono per un'ulteriore elaborazione. quindi come posso procedere? –
Hai intenzione * di * di sfuggirli in qualche modo. Ma se li scappi dal lato della chiamata, puoi riprenderli dal lato ricevente e utilizzare ancora i dati. Non stavo suggerendo * lasciando cadere * i caratteri "cattivi". –
Per essere più chiari. Sto sviluppando un gateway che riceverà un frame da un terminale che ha una forma rigorosa, quindi non posso toccarlo. Il mio servizio web deve essere in grado di riceverlo così come è di inoltrarlo di nuovo al server !! Sto creando un servizio Web client solo per i test nell'host locale !! –