Hi Josef,

Sorry for the late reply but yesterday here was holidays.
Some info
Server: JBoss5.1 + Axis (1.5) + Suse (11.x)
Client: I made tests both with Poster (an HTTP plug-in for Firefox) and oXigen 
(an XML editor) WSDL SOAP analyzer. I even made a Java client generated by the 
AXIS wsdl2code script (I just added the generateClientSide option in the 
org.apache.axis2: axis2-wsdl2code-maven-plugin I use to generate the server 
side code) setting the HTTP1.1 truncated option to false. The real production 
client is a python-based and it performs like the previous three clients.

On the request I do not have any exception (at least at the ERROR level) and, 
as I wrote, debugging the code, the server correctly generates the response 
until the skeleton class. To go further into I should download the AXIS2 source 
and see what happen inside which I will do it if no other solution appear.

I have not used any HTTP monitor but I strongly guess that the data are 
truncated at the Server side because

1)      any client I used returns me the same truncated response.

2)      The transmitted message is not really trunked: just an element inside 
the message is trunked and because the client receive an XML, that is the 
client does not marshal/unmarshall nothing, the server should be guilty for 
such manipulation of the data.

I even tried to update Axis2 to the available last version but the problem 
remained.

I read that for large document should be worth to send it as an "attachment" 
but this would change the actual architecture which I would like not to touch 
(the real client is implemented by a third party). If not other solution will 
appear probably I will refactor the actual server to a full EJB3 web service 
(this Axis2 service is something which comes from a previous implementation. I 
already run other EJBs and that's also why Axis2 is deployed into JBoss and not 
into Tomcat).

Thanks for sharing your experience! I hope we will find some solution sooner or 
later.
Maurizio

From: Stadelmann Josef [mailto:[email protected]]
Sent: 02 May 2011 09:48
To: [email protected]
Subject: AW: Axis2 Response trunked

Hi,
I was running into very similar issues once. Not with CDATA but just with long 
soap xml messages.

But first, it would be nice if you can give us a bit more insight into your 
configuration ,OS, Frameworks used, Axis2 version, and if your client is in 
example a MS WCF 3.5 web service client or what? Such details are important if 
one should be able to help you. Isn't it? Then we like to know about exceptions 
raised. Where? At service or at client? Or no exception but just truncations? 
And if truncation where does it occur. For that you may want to switch a TCP 
Monitor between client and server and see if the all CDATA is put onto wire and 
then gets truncated at the client or if the service is unable to send all CDATA 
to the wire, hence what you see at the client is caused by the service.

In short is it the client or the service which is responsible for truncation?

Why do I address MS WCF 3.5 Client? Because once you successfully transmit your 
XML SOAP between an Axis2 Server and a MS WCF Client (99% fine) you will find 
that it happens sooner the later what you describe. As soon as your xml stream 
approaches 65536 bytes, about 20 bytes before that limit is reached, your MS 
WCF Client comes up with an error message stating that the message is too 
large. But itself, the MS WCF Client, has absolute no concerns to send to the 
web service documents very much larger than 65536 bytes. :) you get the point.

Then you start reading at why MS WCF 3.5 clients behaves like that, and you 
will find somewhere at MS WCF Forums the "lapidary" information that WCF has 
not been developed to transmit such large messages. And then you start thinking 
about transmitting in Junks, about taking other formats into consideration like 
MTOM é all for various reasons.

I know this is not the solution to your problem, but may be the path to go.
Josef



Von: [email protected] [mailto:[email protected]]
Gesendet: Donnerstag, 28. April 2011 16:05
An: [email protected]
Betreff: Axis2 Response trunked

Hello,

My axis2 WS is working 99% perfectly. Anyway when I want to return a quite long 
XML document as CDATA the response document is mysteriously truncated just in 
the middle of some word. That is, something that should be

<soapsomething>
<myTag>
<!CDATA[myXMLDocument]]>
</myTag>
<soapsomething>

On the client became

<soapsomething>
<myTag>
<!CDATA[myXMLDoc
</myTag>
<soapsomething>

What mostly intrigue me is that such situation happen only for some XML 
documents!
To be more specific I create both the WSDL and the classes through a MAVEN 
plugin so I just add the document as String to the Java response object created 
by axis, that is, I do not manipulate the XML but just the java object. In this 
way I can see that the document is correctly added to the response (the XML 
document is all and correctly into the CDATA), then it enters the AXIS internal 
code and then the client receives such truncated response.

I am using AXIS2 (1.5) running into JBoss

Thanks
Maurizio


--
Scanned by iCritical.


-- 
Scanned by iCritical.

Reply via email to