Desarrollé un servicio web y lo implementé con Axis. Todo funciona muy bien, pero tengo un problema cuando consumo el servicio usando una cadena que contiene un carácter no imprimible (como ETX, FS, ..). tengo el siguiente error:caracteres XML ilegales/Axis
exception: java.lang.IllegalArgumentException: The char '0x1c' after '....' is not a valid XML character.
tiene alguna idea por favor?
edición:
tengo que enviar una trama a mi servidor utilizando el servicio web. Mi cuerpo tiene una forma estricta (que contiene algunos caracteres no imprimibles como separador)
class Automate {void checkFrame(String frame){// checking the frame}}
archivo 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>
No puedo escapar de esos caracteres, los necesito para un procesamiento posterior. entonces, ¿cómo puedo proceder? –
Vas a * tener * para escapar de alguna manera. Pero si los escapa en el lado de la llamada, puede desactivarlos en el lado de recepción y, por lo tanto, seguir utilizando los datos. No estaba sugiriendo * eliminar * los personajes "malos". –
Para ser más claro. Estoy desarrollando una puerta de enlace que recibirá un marco de una terminal que tiene una forma estricta, así que no puedo tocarlo. ¡Mi servicio web debe poder recibirlo así como también reenviarlo al servidor! ¡Ahora estoy creando un servicio web de cliente solo para pruebas en el host local! –