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 "Punnoose, Roshan" <pu...@bah-systems.com> on 2006/09/18 23:16:24 UTC

[Axis2] Multiple messages from the server

Hi, 

I am trying to return multiple messages back from the server to the
client's callback, however, I keep getting this error:

org.apache.axis2.AxisFault: Invalid message addition , operation context
completed
	at
org.apache.axis2.description.OutInAxisOperation.addMessageContext(OutInA
xisOperation.java:64)
	at
org.apache.axis2.context.OperationContext.addMessageContext(OperationCon
text.java:89)
	at
org.apache.axis2.engine.AddressingBasedDispatcher.invoke(AddressingBased
Dispatcher.java:121)
	at org.apache.axis2.engine.Phase.invoke(Phase.java:377)

on the client.

Any ideas?

Roshan Punnoose
Phone: 301-497-6039

-----Original Message-----
From: Punnoose, Roshan [mailto:punnooser@bah-systems.com] 
Sent: Monday, September 18, 2006 1:37 PM
To: axis-user@ws.apache.org
Subject: [Axis2] Problem using a ServiceClient on the server

I am trying to push back a response to a Client's Callback listener, but
I keep getting this error:

Caused by: java.lang.IllegalStateException: Current state not
START_ELEMENT
        at
com.ctc.wstx.sr.BasicStreamReader.getAttributeCount(BasicStreamReader.ja
va:582)
        at
org.apache.axiom.om.impl.builder.StAXBuilder.processAttributes(StAXBuild
er.java:130)
        at
org.apache.axiom.om.impl.mtom.MTOMStAXSOAPModelBuilder.createOMElement(M
TOMStAXSOAPModelBuilder.java:126)
        at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:1
25)
        ... 31 more

Here is my code:

OMFactory fac = OMAbstractFactory.getOMFactory();
		OMNamespace omNs = fac.createOMNamespace(
				"http://example1.org/example1",
"example1");

		OMElement data = fac.createOMElement("mtomSample",
omNs);

		OMElement file = fac
				.createOMElement("file",
data.getDefaultNamespace());

		FileDataSource fileDataSource = new
FileDataSource("C:/temp/query.txt");
		DataHandler dataHandler = new
DataHandler(fileDataSource);

		OMText textData = fac.createOMText(dataHandler, true);
		file.addChild(textData);
		data.addChild(file);

		Options options = new Options();
	
options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
		options.setTo(ref);
		options.setProperty(Constants.Configuration.ENABLE_MTOM,
				Constants.VALUE_TRUE);
	
options.setProperty(Constants.Configuration.CACHE_ATTACHMENTS,
				Constants.VALUE_TRUE);
	
options.setProperty(Constants.Configuration.ATTACHMENT_TEMP_DIR,
				"C:/temp/attachments_temp");
	
options.setProperty(Constants.Configuration.FILE_SIZE_THRESHOLD,
				"10240");
	
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);

		RelatesTo relatesTo = new RelatesTo(
	
AddressingConstants.Final.WSA_DEFAULT_RELATIONSHIP_TYPE,
				messageId);
		options.setRelationships(new RelatesTo[] { relatesTo });

		ServiceClient client = null;
		try {
			Thread.sleep(5000);
			client = new ServiceClient();
			client.setOptions(options);
			client.sendReceive(file);
		} catch (Exception e) {
			e.printStackTrace();
		}

Any ideas why this might be happening? It works if I just return the
same OMElement synchronously through the invoked method.

Roshan