You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Fabio Cristiano dos Anjos <fa...@gmail.com> on 2004/09/20 15:35:55 UTC

Returning array of complex types

Hi,

I'm using Axis 1.2 Beta as server, and .Net WebService Studio as
client for my tests.
Almost everything is working fine, except for a strange behavior that
happens depending of the result (response) of the web service, in
methods that return arrays of complex types.

Below, it's shown two request for the same web service that returns an
array of complex types.

Hear is the example of a successfull request (i am using tcpmon to
monitore the requests and responses):

Request:


POST /axis1.2/services/ServidorMatricula HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
Content-Length: 346
Expect: 100-continue
Host: 150.162.114.5:8085

<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><consultarMatriculasDisciplina
xmlns="http://matricula"><in0>1</in0></consultarMatriculasDisciplina></soap:Body></soap:Envelope>

Response:

HTTP/1.1 100 Continue



HTTP/1.1 200 OK

Content-Type: text/xml;charset=utf-8

Transfer-Encoding: chunked

Date: Mon, 20 Sep 2004 13:34:02 GMT

Server: Apache-Coyote/1.1


39b

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <consultarMatriculasDisciplinaResponse xmlns="http://matricula">
   <consultarMatriculasDisciplinaReturn>
    <idCategoria>1</idCategoria>
    <idDisciplina>1</idDisciplina>
    <idUsuario>2</idUsuario>
    <numero>1</numero>
    <regime>fff</regime>
    <situacaoMatricula>2</situacaoMatricula>
   </consultarMatriculasDisciplinaReturn>
   <consultarMatriculasDisciplinaReturn>
    <idCategoria>3</idCategoria>
    <idDisciplina>1</idDisciplina>
    <idUsuario>2</idUsuario>
    <numero>2</numero>
    <regime>fff</regime>
    <situacaoMatricula>2</situacaoMatricula>
   </consultarMatriculasDisciplinaReturn>
  </consultarMatriculasDisciplinaResponse>
 </soapenv:Body>
</soapenv:Envelope>

0


I don't know what that "39b" befor <:?xml tag and that 0 at the end of response.

Now, a request and response that produce an erro at the client:

Request:

POST /axis1.2/services/ServidorMatricula HTTP/1.1

Content-Type: text/xml; charset=utf-8

SOAPAction: ""

Content-Length: 346

Expect: 100-continue

Host: 150.162.114.5:8085



<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><consultarMatriculasDisciplina
xmlns="http://matricula"><in0>2</in0></consultarMatriculasDisciplina></soap:Body></soap:Envelope>

Response:

HTTP/1.1 100 Continue



HTTP/1.1 200 OK

Content-Type: text/xml;charset=utf-8

Transfer-Encoding: chunked

Date: Mon, 20 Sep 2004 13:38:27 GMT

Server: Apache-Coyote/1.1



4ac

<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 <soapenv:Body>
  <consultarMatriculasDisciplinaResponse xmlns="http://matricula">
   <consultarMatriculasDisciplinaReturn>
    <idCategoria>3</idCategoria>
    <idDisciplina>2</idDisciplina>
    <idUsuario>2</idUsuario>
    <numero>4</numero>
    <regime>fff</regime>
    <situacaoMatricula>2</situacaoMatricula>
   </consultarMatriculasDisciplinaReturn>
   <consultarMatriculasDisciplinaReturn>
    <idCategoria>3</idCategoria>
    <idDisciplina>2</idDisciplina>
    <idUsuario>3</idUsuario>
    <numero>9</numero>
    <regime>fff</regime>
    <situacaoMatricula>2</situacaoMatricula>
   </consultarMatriculasDisciplinaReturn>
   <consultarMatriculasDisciplinaReturn>
    <idCategoria>1</idCategoria>
    <idDisciplina>2</idDisciplina>
    <idUsuario>3</idUsuario>
    <numero>10</numero>
    <regime>ff</regime>
    <situacaoMatricula>2</situacaoMatricula>
   </consultarMatriculasDisciplinaReturn>
  </consultarMatriculasDisciplinaResponse>
 </soapenv:Body>
</soapenv:Envelope>

0


This last request/response produce the following error at the client:

System.Xml.XmlException: The data at the root level is invalid. Line
1, position 1.
   at System.Xml.XmlTextReader.ParseRoot()
   at System.Xml.XmlTextReader.Read()
   at System.Xml.XmlValidatingReader.ReadWithCollectTextToken()
   at System.Xml.XmlValidatingReader.Read()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader,
Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.LoadXml(String xml)
   at System.Xml.XmlDocument.set_InnerXml(String value)
   at WebServiceStudio.MessageTracer.ReadMessage(Stream from, Int32
len, String contentType)
   at WebServiceStudio.WSSWebResponse.DumpResponse(WebResponse response)
   at WebServiceStudio.WSSWebResponse.DumpResponse()
   at WebServiceStudio.WSSWebRequest.GetResponse()



I don't know what to do anymore!! So, I would appreciate any help!!!
Thanks in advance!!!
Fabio
-------

Re: Returning array of complex types

Posted by Fabio Cristiano dos Anjos <fa...@gmail.com>.
HI Eric,

Thanks for the answer!!
I really don't know how come a hidden character be in that response.
Do you have any suggestions?
I forgot to say that I am using ?wsdl for automatic generation of wsdl file.
Is there any other tool like .Net WebService Studio so I can repeat
the tests in other client?

Thanks again!!
Fabio


On Tue, 21 Sep 2004 11:52:57 -0700, Eric Rajkovic
<er...@oracle.com> wrote:
> Fabio,
> 
> The "39b"-"0" and "4ac"-"0" are the chunking size, related to chunked transfer.
> 
> They are the chunk-size - last-chunk, as defined in the Hypertext Transfer Protocol -- HTTP/1.1
> specification.
> 
> see http://www.faqs.org/rfcs/rfc2616.html, section 3.6.1 Chunked Transfer Coding
> 
> From the parser error on the second request/response it looks like if you
> have some hiden character on the first line of the second response, before
> the XML declaration (<?xml version="1.0" encoding="utf-8"?>).
> 
> The only character valid there are for the Byte Order Mark (BOM)
> 
> see http://www.w3.org/TR/REC-xml/#sec-prolog-dtd
> 
> hope this helps,
> eric
> 
> 
> 
> Fabio Cristiano dos Anjos wrote:
> > Hi,
> >
> > I'm using Axis 1.2 Beta as server, and .Net WebService Studio as
> > client for my tests.
> > Almost everything is working fine, except for a strange behavior that
> > happens depending of the result (response) of the web service, in
> > methods that return arrays of complex types.
> >
> > Below, it's shown two request for the same web service that returns an
> > array of complex types.
> >
> > Hear is the example of a successfull request (i am using tcpmon to
> > monitore the requests and responses):
> >
> > Request:
> >
> >
> > POST /axis1.2/services/ServidorMatricula HTTP/1.1
> > Content-Type: text/xml; charset=utf-8
> > SOAPAction: ""
> > Content-Length: 346
> > Expect: 100-continue
> > Host: 150.162.114.5:8085
> >
> > <?xml version="1.0" encoding="utf-8"?><soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><consultarMatriculasDisciplina
> > xmlns="http://matricula"><in0>1</in0></consultarMatriculasDisciplina></soap:Body></soap:Envelope>
> >
> > Response:
> >
> > HTTP/1.1 100 Continue
> >
> >
> >
> > HTTP/1.1 200 OK
> >
> > Content-Type: text/xml;charset=utf-8
> >
> > Transfer-Encoding: chunked
> >
> > Date: Mon, 20 Sep 2004 13:34:02 GMT
> >
> > Server: Apache-Coyote/1.1
> >
> >
> > 39b
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <soapenv:Envelope
> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >  <soapenv:Body>
> >   <consultarMatriculasDisciplinaResponse xmlns="http://matricula">
> >    <consultarMatriculasDisciplinaReturn>
> >     <idCategoria>1</idCategoria>
> >     <idDisciplina>1</idDisciplina>
> >     <idUsuario>2</idUsuario>
> >     <numero>1</numero>
> >     <regime>fff</regime>
> >     <situacaoMatricula>2</situacaoMatricula>
> >    </consultarMatriculasDisciplinaReturn>
> >    <consultarMatriculasDisciplinaReturn>
> >     <idCategoria>3</idCategoria>
> >     <idDisciplina>1</idDisciplina>
> >     <idUsuario>2</idUsuario>
> >     <numero>2</numero>
> >     <regime>fff</regime>
> >     <situacaoMatricula>2</situacaoMatricula>
> >    </consultarMatriculasDisciplinaReturn>
> >   </consultarMatriculasDisciplinaResponse>
> >  </soapenv:Body>
> > </soapenv:Envelope>
> >
> > 0
> >
> >
> > I don't know what that "39b" befor <:?xml tag and that 0 at the end of response.
> >
> > Now, a request and response that produce an erro at the client:
> >
> > Request:
> >
> > POST /axis1.2/services/ServidorMatricula HTTP/1.1
> >
> > Content-Type: text/xml; charset=utf-8
> >
> > SOAPAction: ""
> >
> > Content-Length: 346
> >
> > Expect: 100-continue
> >
> > Host: 150.162.114.5:8085
> >
> >
> >
> > <?xml version="1.0" encoding="utf-8"?><soap:Envelope
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><consultarMatriculasDisciplina
> > xmlns="http://matricula"><in0>2</in0></consultarMatriculasDisciplina></soap:Body></soap:Envelope>
> >
> > Response:
> >
> > HTTP/1.1 100 Continue
> >
> >
> >
> > HTTP/1.1 200 OK
> >
> > Content-Type: text/xml;charset=utf-8
> >
> > Transfer-Encoding: chunked
> >
> > Date: Mon, 20 Sep 2004 13:38:27 GMT
> >
> > Server: Apache-Coyote/1.1
> >
> >
> >
> > 4ac
> >
> > <?xml version="1.0" encoding="utf-8"?>
> > <soapenv:Envelope
> > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >  <soapenv:Body>
> >   <consultarMatriculasDisciplinaResponse xmlns="http://matricula">
> >    <consultarMatriculasDisciplinaReturn>
> >     <idCategoria>3</idCategoria>
> >     <idDisciplina>2</idDisciplina>
> >     <idUsuario>2</idUsuario>
> >     <numero>4</numero>
> >     <regime>fff</regime>
> >     <situacaoMatricula>2</situacaoMatricula>
> >    </consultarMatriculasDisciplinaReturn>
> >    <consultarMatriculasDisciplinaReturn>
> >     <idCategoria>3</idCategoria>
> >     <idDisciplina>2</idDisciplina>
> >     <idUsuario>3</idUsuario>
> >     <numero>9</numero>
> >     <regime>fff</regime>
> >     <situacaoMatricula>2</situacaoMatricula>
> >    </consultarMatriculasDisciplinaReturn>
> >    <consultarMatriculasDisciplinaReturn>
> >     <idCategoria>1</idCategoria>
> >     <idDisciplina>2</idDisciplina>
> >     <idUsuario>3</idUsuario>
> >     <numero>10</numero>
> >     <regime>ff</regime>
> >     <situacaoMatricula>2</situacaoMatricula>
> >    </consultarMatriculasDisciplinaReturn>
> >   </consultarMatriculasDisciplinaResponse>
> >  </soapenv:Body>
> > </soapenv:Envelope>
> >
> > 0
> >
> >
> > This last request/response produce the following error at the client:
> >
> > System.Xml.XmlException: The data at the root level is invalid. Line
> > 1, position 1.
> >    at System.Xml.XmlTextReader.ParseRoot()
> >    at System.Xml.XmlTextReader.Read()
> >    at System.Xml.XmlValidatingReader.ReadWithCollectTextToken()
> >    at System.Xml.XmlValidatingReader.Read()
> >    at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader,
> > Boolean preserveWhitespace)
> >    at System.Xml.XmlDocument.Load(XmlReader reader)
> >    at System.Xml.XmlDocument.LoadXml(String xml)
> >    at System.Xml.XmlDocument.set_InnerXml(String value)
> >    at WebServiceStudio.MessageTracer.ReadMessage(Stream from, Int32
> > len, String contentType)
> >    at WebServiceStudio.WSSWebResponse.DumpResponse(WebResponse response)
> >    at WebServiceStudio.WSSWebResponse.DumpResponse()
> >    at WebServiceStudio.WSSWebRequest.GetResponse()
> >
> >
> >
> > I don't know what to do anymore!! So, I would appreciate any help!!!
> > Thanks in advance!!!
> > Fabio
> > -------
> >
> 
> 



-- 
Atenciosamente,
Fábio Cristiano dos Anjos

Re: Returning array of complex types

Posted by Eric Rajkovic <er...@oracle.com>.
Fabio,

The "39b"-"0" and "4ac"-"0" are the chunking size, related to chunked transfer.

They are the chunk-size - last-chunk, as defined in the Hypertext Transfer Protocol -- HTTP/1.1
specification.

see http://www.faqs.org/rfcs/rfc2616.html, section 3.6.1 Chunked Transfer Coding

 From the parser error on the second request/response it looks like if you
have some hiden character on the first line of the second response, before
the XML declaration (<?xml version="1.0" encoding="utf-8"?>).

The only character valid there are for the Byte Order Mark (BOM)

see http://www.w3.org/TR/REC-xml/#sec-prolog-dtd

hope this helps,
eric

Fabio Cristiano dos Anjos wrote:
> Hi,
> 
> I'm using Axis 1.2 Beta as server, and .Net WebService Studio as
> client for my tests.
> Almost everything is working fine, except for a strange behavior that
> happens depending of the result (response) of the web service, in
> methods that return arrays of complex types.
> 
> Below, it's shown two request for the same web service that returns an
> array of complex types.
> 
> Hear is the example of a successfull request (i am using tcpmon to
> monitore the requests and responses):
> 
> Request:
> 
> 
> POST /axis1.2/services/ServidorMatricula HTTP/1.1
> Content-Type: text/xml; charset=utf-8
> SOAPAction: ""
> Content-Length: 346
> Expect: 100-continue
> Host: 150.162.114.5:8085
> 
> <?xml version="1.0" encoding="utf-8"?><soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><consultarMatriculasDisciplina
> xmlns="http://matricula"><in0>1</in0></consultarMatriculasDisciplina></soap:Body></soap:Envelope>
> 
> Response:
> 
> HTTP/1.1 100 Continue
> 
> 
> 
> HTTP/1.1 200 OK
> 
> Content-Type: text/xml;charset=utf-8
> 
> Transfer-Encoding: chunked
> 
> Date: Mon, 20 Sep 2004 13:34:02 GMT
> 
> Server: Apache-Coyote/1.1
> 
> 
> 39b
> 
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>  <soapenv:Body>
>   <consultarMatriculasDisciplinaResponse xmlns="http://matricula">
>    <consultarMatriculasDisciplinaReturn>
>     <idCategoria>1</idCategoria>
>     <idDisciplina>1</idDisciplina>
>     <idUsuario>2</idUsuario>
>     <numero>1</numero>
>     <regime>fff</regime>
>     <situacaoMatricula>2</situacaoMatricula>
>    </consultarMatriculasDisciplinaReturn>
>    <consultarMatriculasDisciplinaReturn>
>     <idCategoria>3</idCategoria>
>     <idDisciplina>1</idDisciplina>
>     <idUsuario>2</idUsuario>
>     <numero>2</numero>
>     <regime>fff</regime>
>     <situacaoMatricula>2</situacaoMatricula>
>    </consultarMatriculasDisciplinaReturn>
>   </consultarMatriculasDisciplinaResponse>
>  </soapenv:Body>
> </soapenv:Envelope>
> 
> 0
> 
> 
> I don't know what that "39b" befor <:?xml tag and that 0 at the end of response.
> 
> Now, a request and response that produce an erro at the client:
> 
> Request:
> 
> POST /axis1.2/services/ServidorMatricula HTTP/1.1
> 
> Content-Type: text/xml; charset=utf-8
> 
> SOAPAction: ""
> 
> Content-Length: 346
> 
> Expect: 100-continue
> 
> Host: 150.162.114.5:8085
> 
> 
> 
> <?xml version="1.0" encoding="utf-8"?><soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><consultarMatriculasDisciplina
> xmlns="http://matricula"><in0>2</in0></consultarMatriculasDisciplina></soap:Body></soap:Envelope>
> 
> Response:
> 
> HTTP/1.1 100 Continue
> 
> 
> 
> HTTP/1.1 200 OK
> 
> Content-Type: text/xml;charset=utf-8
> 
> Transfer-Encoding: chunked
> 
> Date: Mon, 20 Sep 2004 13:38:27 GMT
> 
> Server: Apache-Coyote/1.1
> 
> 
> 
> 4ac
> 
> <?xml version="1.0" encoding="utf-8"?>
> <soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
>  <soapenv:Body>
>   <consultarMatriculasDisciplinaResponse xmlns="http://matricula">
>    <consultarMatriculasDisciplinaReturn>
>     <idCategoria>3</idCategoria>
>     <idDisciplina>2</idDisciplina>
>     <idUsuario>2</idUsuario>
>     <numero>4</numero>
>     <regime>fff</regime>
>     <situacaoMatricula>2</situacaoMatricula>
>    </consultarMatriculasDisciplinaReturn>
>    <consultarMatriculasDisciplinaReturn>
>     <idCategoria>3</idCategoria>
>     <idDisciplina>2</idDisciplina>
>     <idUsuario>3</idUsuario>
>     <numero>9</numero>
>     <regime>fff</regime>
>     <situacaoMatricula>2</situacaoMatricula>
>    </consultarMatriculasDisciplinaReturn>
>    <consultarMatriculasDisciplinaReturn>
>     <idCategoria>1</idCategoria>
>     <idDisciplina>2</idDisciplina>
>     <idUsuario>3</idUsuario>
>     <numero>10</numero>
>     <regime>ff</regime>
>     <situacaoMatricula>2</situacaoMatricula>
>    </consultarMatriculasDisciplinaReturn>
>   </consultarMatriculasDisciplinaResponse>
>  </soapenv:Body>
> </soapenv:Envelope>
> 
> 0
> 
> 
> This last request/response produce the following error at the client:
> 
> System.Xml.XmlException: The data at the root level is invalid. Line
> 1, position 1.
>    at System.Xml.XmlTextReader.ParseRoot()
>    at System.Xml.XmlTextReader.Read()
>    at System.Xml.XmlValidatingReader.ReadWithCollectTextToken()
>    at System.Xml.XmlValidatingReader.Read()
>    at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader,
> Boolean preserveWhitespace)
>    at System.Xml.XmlDocument.Load(XmlReader reader)
>    at System.Xml.XmlDocument.LoadXml(String xml)
>    at System.Xml.XmlDocument.set_InnerXml(String value)
>    at WebServiceStudio.MessageTracer.ReadMessage(Stream from, Int32
> len, String contentType)
>    at WebServiceStudio.WSSWebResponse.DumpResponse(WebResponse response)
>    at WebServiceStudio.WSSWebResponse.DumpResponse()
>    at WebServiceStudio.WSSWebRequest.GetResponse()
> 
> 
> 
> I don't know what to do anymore!! So, I would appreciate any help!!!
> Thanks in advance!!!
> Fabio
> -------
>