Java - Forma de retornar datos de tipo bytes de un web services

   
Vista:

Forma de retornar datos de tipo bytes de un web services

Publicado por REGINA A regina.feliz@bt.gob.ve (2 intervenciones) el 08/05/2014 22:17:52
Buen día

Tengo un web service en java que obtiene datos de tipo bytes de una base de datos, estos bytes son imagenes. Los obtengos satifactoriamente guardandolo en una estructura de bytes donde se guardan el imageFront y el imageBack (nombre de los valores que le di), al momento de retornar esta estructura de bytes del web service, tengo una duda de la forma como le retorna a un cliente que lo consume a través del wsdl. El xml response me responde algo así:

<?xml version="1.0" encoding="UTF-8" ?>
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <obtenerImagenesResponse xmlns="http://com">
- <obtenerImagenesReturn>
<imageback xmlns="http://bean">--1</imageback>
<imageback xmlns="http://bean">-90</imageback>
<imageback xmlns="http://bean">-45</imageback>
<imageback xmlns="http://bean">-60</imageback>
<imageback xmlns="http://bean">-7</imageback>
<imageback xmlns="http://bean">-1</imageback>
(n etiquetas <imageback )
<imageback xmlns="http://bean">-1</imageback>
<imagefront xmlns="http://bean">-3</imagefront>
<imagefront xmlns="http://bean">-9</imagefront>
<imagefront xmlns="http://bean">--39</imagefront>
<imagefront xmlns="http://bean">-45</imagefront>
<imagefront xmlns="http://bean">-39</imagefront>
(n etiquetas <imagefront )
<imagefront xmlns="http://bean">-39.......</imagefront>
</obtenerImagenesReturn>
</obtenerImagenesResponse>
</soapenv:Body>
</soapenv:Envelope>

No hay una manera que el xml response responda los bytes de imageback e imagefront en una sola etiqueta cada una??? Como por ejemplo:

<?xml version="1.0" encoding="UTF-8" ?>
- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <soapenv:Body>
- <obtenerImagenesResponse xmlns="http://com">
- <obtenerImagenesReturn>
<imageback xmlns="http://bean">-1.......</imageback>
<imagefront xmlns="http://bean">-39.......</imagefront>
</obtenerImagenesReturn>
</obtenerImagenesResponse>
</soapenv:Body>
</soapenv:Envelope>


Por qué pregunto esto? Porque lo probé de un cliente java y recibe lo bytes y lo transforma a una imagen perfectamente pero en realidad lo va a consumir un cliente power builder y el mismo recorre el xml leyendo nodo por nodo y no interpreta que son los bytes de una imagen. Mi web services está en java.

Espero su respuesta.

Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Forma de retornar datos de tipo bytes de un web services

Publicado por Tom (909 intervenciones) el 08/05/2014 22:37:09
Creo que sería conveniente que mostraras la parte releveante de tu wsdl ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Forma de retornar datos de tipo bytes de un web services

Publicado por REGINA A regina.feliz@bt.gob.ve (2 intervenciones) el 08/05/2014 23:26:26
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<element name="obtenerImagenes">
    <complexType>
     <sequence>
      <element name="oficina" nillable="true" type="xsd:string"/>
      <element name="numCheque" nillable="true" type="xsd:string"/>
      <element name="cta_cheque" nillable="true" type="xsd:string"/>
      <element name="fecha" nillable="true" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="obtenerImagenesResponse">
    <complexType>
     <sequence>
      <element maxOccurs="unbounded" name="obtenerImagenesReturn" type="tns2:BImagenCheque"/>
     </sequence>
    </complexType>
   </element>
 
    <wsdl:message name="obtenerImagenesResponse">
      <wsdl:part element="intf:obtenerImagenesResponse" name="parameters"/>
   </wsdl:message>
    <wsdl:operation name="obtenerImagenes">
	wsdl:input message="intf:obtenerImagenesRequest" name="obtenerImagenesRequest"/>
        <wsdl:output message="intf:obtenerImagenesResponse" name="obtenerImagenesResponse"/>
    </wsdl:operation>
	<wsdl:operation name="obtenerImagenes">
         <wsdlsoap:operation soapAction=""/>
			<wsdl:input name="obtenerImagenesRequest">
        <wsdlsoap:body use="literal"/>
        </wsdl:input>
        <wsdl:output name="obtenerImagenesResponse">
			<wsdlsoap:body use="literal"/>
         </wsdl:output>
    </wsdl:operation>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Forma de retornar datos de tipo bytes de un web services

Publicado por Tom (909 intervenciones) el 09/05/2014 09:08:54
Bueno ... me iba a poner a buscar cuando recordé esto:

https://netbeans.org/kb/docs/websvc/flower_wsdl_schema.html

y esto:

1
2
<xsd:element name="ImageData" type="xsd:base64Binary">
</xsd:element>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Forma de retornar datos de tipo bytes de un web services

Publicado por Tom (909 intervenciones) el 09/05/2014 10:03:40
Ah! y más info en:

http://www.w3.org/TR/wsdl
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar