wsdl - generate - jax-ws
¿Cómo obligo a CXF a usar un DataHandler para tipos base64binary sin modificar el WSDL? (0)
Estoy trabajando para cambiar nuestra implementación de un servicio SOAP de usar Axis2 a usar JAX-WS (técnicamente, la implementación CXF proporcionada por JBossWS en AS 7) y me he encontrado con un problema que me impide cambiar el último método restante al estilo JAX-WS.
El método (ligeramente anonimizado ya que la especificación parece no ser pública) devuelve un Tipo que contiene un elemento base64binary.
<xs:complexType name="BitmapResult">
<xs:sequence>
<xs:element minOccurs="0" name="chunkBitmap" nillable="true" type="xs:base64Binary"/>
</xs:sequence>
</xs:complexType>
En Axis2 esto genera una clase que usa un DataHandler para manejar el parámetro binario y parece usar MTOM por defecto para devolver el resultado.
Usando la herramienta wsdl2java de CXF, esto genera una clase de tipo que usa un byte [] y devolverá el parámetro como texto codificado en base64 dentro de la respuesta de SOAP.
De todo lo que he leído, la forma correcta de hacerlo con CXF es asegurarse de que el archivo wsdl del que está generando contiene: xmime:expectedContentTypes="application/octet-stream"
pero dado que estamos recibiendo el WSDL por un fuera de la fuente, preferiría no modificarlo localmente.
¿Hay alguna otra forma de solicitar que CXF genere la clase usando un DataHandler que no sea modificando el WSDL? Ya estoy usando un archivo de enlace jaxb para ajustar algunos otros parámetros de la generación, pero no pude encontrar nada que me permitiera anular esta configuración en particular.