Can you please post the relevant service code too? Might it be a concurrency issue?

Michele


On 5 Dec 2008, at 10:55, Daniil Chipenko wrote:

Hello,

If someone familiar with creating service clients with AXIOM, please help!

I was checked for outgoing SOAP messages with http sniffer on client requests to server and realized that some of them is malformed by interleaving each other why other is empty. Sometimes they become so twisted that even result = sender.sendReceive (method); can't pass XML structure analyze phase and can't do the request at all - exceptions thrown is very varied then, but all of them indicates broken XML structure. How can this happen? I didn't use any static objects in my code which can assign to the same static variables and i checked content of outgoing OMElement - it's always well-formed. Problem happen inside sendReceive method. I suppose sendReceive method of sender object sometimes write to same httpclient stream. How i can
avoid such interleaving?

Example of such broken request:

1 thread:   <??xmxlml ..... (and so on)
while
2 thread  is empty
but
3 thread's request is properly formed and passed

ServiceClient sender = new ServiceClient();
                    sender.setOptions(options);
                    result = sender.sendReceive(method);

very sorry for bad english.
With hope,
Daniil


2008/12/4 Daniil Chipenko <[EMAIL PROTECTED]>
Good day,

I'm using Axis2 1.4 with tomcat5.5 and created both service and client from a scratch with AXIOM via HTTP port. And they worked together like charm, just before i'm beggining to put them under some load. Even when there is just 3 simultaneous calls - one of my client threads written with AXIOM begins to throw varied exceptions without any stack trace, like:

org.apache.axiom.om.OMException
      or
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: An invalid XML character (Unicode: 0x0) was found in the comment.
      or
com.sun.org.apache.xerces.internal.xni.XNIException: Scanner State 7 not Recognized
      or
org.apache.axiom.om.OMException: javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Open quote is expected for attribute "{1}" associated with an element type "name". ... and this happens not always, but approx. 1/3 times of 3 simultaneus threads starts.

Here is my code:

  OMElement method = fac.createOMElement(new QName(chartName));

                for(String key : keys){
OMElement value = fac.createOMElement(new QName (key));
                    String mapvalue = ((String[]) params.get(key))[0];
                    value.addChild(fac.createOMText(value, mapvalue));
                    method.addChild(value);
                }

               Options options = new Options();
                options.setTo(ApplicationProperties.targetEPRFinance);
options.setTransportInProtocol (Constants.TRANSPORT_HTTP); OMElement result = fac.createOMElement(new QName ("EmptyResult"));

System.out.println("Payload for service: " + method.toString());

                try {
                    ServiceClient sender = new ServiceClient();
                    sender.setOptions(options);
                    result = sender.sendReceive(method);
                } catch (AxisFault e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

System.out.println("Result from service: " + result.toString());




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to