Hi John; I was able to re-create the issue :) do you want to send SOAPEnvelop as the SOAPBody of the request ? , as I can see that is what you are trying to do. If you juts need to send the request pls replace the following;
private String sendSoapMsg(File file, String operation, String namespace, String url, String soapVersion) throws Exception { // create the parser XMLStreamReader parser = XMLInputFactory.newInstance() .createXMLStreamReader(new FileInputStream(file)); // create the builder StAXOMBuilder builder = new StAXOMBuilder(parser); // get the root element (in this case the envelope) OMElement documentElement = builder.getDocumentElement(); SOAPFactory omfactory; if (soapVersion.equals("1.2")) { omfactory = OMAbstractFactory.getSOAP12Factory(); log.debug("Setting up SOAP1.2 message........"); } else { omfactory = OMAbstractFactory.getSOAP11Factory(); log.debug("Setting up SOAP1.1 message........"); } OMElement action = omfactory.createOMElement(operation, namespace, ""); action.addChild(documentElement); return sendRecieve(url, action); } John Ferron wrote: > Deepal, > > Here is my java code which performs the parse of file and formulates > it to a SOAPMessage. > > John > > >>> [EMAIL PROTECTED] 07/11/06 12:09 PM >>> > Did you use same OMelement for both the method invocations ? > > if not so , any possibility of seeing the client side code ? > > John Ferron wrote: > > > Good Morning, > > > > Has anyone seen this exception when trying to perform a sendRecieve() > > on the ServiceClient object?? It would be greatly appreciated if I > > could get this resolved. > > > > John > > > > > > 06 Jul 2006 15:54:40 [ProcessSOAPMessage$jsp] ERROR soap - Can not > > output XML declaration, after other output has already been done.; > > nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done.; nested exception is: > > org.apache.axis2.AxisFault: Can not output XML declaration, after > > other output has already been done.; nested exception is: > > javax.xml.stream.XMLStreamException: Can not output XML declaration, > > after other output has already been done. > > > -- > Thanks, > Deepal > ................................................................ > ~Future is Open~ > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > >------------------------------------------------------------------------ > >package com.alliantenergy.soap; > >import java.io.File; >import java.io.FileInputStream; >import java.io.StringWriter; >import java.net.URL; > >import javax.xml.namespace.QName; >import javax.xml.stream.XMLInputFactory; >import javax.xml.stream.XMLOutputFactory; >import javax.xml.stream.XMLStreamReader; > >import org.apache.axiom.om.OMAbstractFactory; >import org.apache.axiom.om.OMElement; >import org.apache.axiom.om.impl.builder.StAXOMBuilder; >import org.apache.axiom.soap.SOAPBody; >import org.apache.axiom.soap.SOAPEnvelope; >import org.apache.axiom.soap.SOAPFactory; >import org.apache.axis2.Constants; >import org.apache.axis2.addressing.EndpointReference; >import org.apache.axis2.client.Options; >import org.apache.axis2.client.ServiceClient; >import org.apache.axis2.context.MessageContextConstants; >import org.apache.axis2.description.AxisService; >import org.apache.log4j.Logger; > >public class SoapClient { > > Logger log = Logger.getLogger("soap"); > static final int BUF_SIZE = 2048; > > /** > *************************************************************************** */ > public String postSoapMessage(String operation, String namespace, > String url, > boolean isHTTPS, boolean isClientAuth, String keystore, > String keystorePWD, File filename, String soapVersion) > throws Exception { > > initProperties(isHTTPS, keystore, keystorePWD); > return sendSoapMsg(filename, operation, namespace, url, > soapVersion); > > } > > /** > *************************************************************************** */ > private void initProperties(boolean isHTTPS, String keystore, > String keystorePWD) { > // the following code should be uncommented if HTTPS is used. > There should > // also be a trust store that contains the signed server > certificate for the > // web server that is being used. > if (isHTTPS) { > System.setProperty("javax.net.ssl.trustStore", > "/opt/eai/security/" > + keystore); > System.setProperty("javax.net.ssl.trustStorePassword", > keystorePWD); > } > } > > /** > *************************************************************************** */ > private String sendSoapMsg(File file, String operation, String > namespace, > String url, String soapVersion) throws Exception { > // create the parser > XMLStreamReader parser = XMLInputFactory.newInstance() > .createXMLStreamReader(new > FileInputStream(file)); > > // create the builder > StAXOMBuilder builder = new StAXOMBuilder(parser); > > // get the root element (in this case the envelope) > OMElement documentElement = builder.getDocumentElement(); > SOAPFactory omfactory; > if (soapVersion.equals("1.2")) { > omfactory = OMAbstractFactory.getSOAP12Factory(); > log.debug("Setting up SOAP1.2 message........"); > } else { > omfactory = OMAbstractFactory.getSOAP11Factory(); > log.debug("Setting up SOAP1.1 message........"); > } > SOAPEnvelope envelope = omfactory.createSOAPEnvelope(); > OMElement action = omfactory.createOMElement(operation, > namespace, ""); > SOAPBody body = omfactory.createSOAPBody(envelope); > action.addChild(documentElement); > body.addChild(action); > > return sendRecieve(url, envelope); > > } > > /** > *************************************************************************** */ > private String sendRecieve(String urlStr, OMElement requestElement) > throws Exception { > URL url = null; > OMElement responseElement = null; > url = new URL(urlStr); > log.info("URL: " + urlStr); > > Options options = new Options(); > options.setTo(new EndpointReference(url.toString())); > options.setProperty(MessageContextConstants.CHUNKED, > Constants.VALUE_FALSE); > options.setTransportInProtocol(Constants.TRANSPORT_HTTP); > > ServiceClient sender = new ServiceClient(); > sender.setOptions(options); > log.info("Sending: "); > log.info(requestElement.toStringWithConsume()); > OMElement om; > om = requestElement.getFirstElement(); > > log.info("getNamespace: " + > requestElement.getNamespace().getName()); > log.info("getLocalName: " + requestElement.getLocalName() ); > log.info("getPrefix: " + > requestElement.getNamespace().getPrefix()); > > // Blocking invocation > QName q = new QName(requestElement.getNamespace().getName(), > requestElement.getLocalName() , > requestElement.getNamespace().getPrefix()); > AxisService as = sender.getAxisService(); > sender.engageModule(q); > responseElement = sender.sendReceive(requestElement); > sender.disEngageModule(new > QName(requestElement.getNamespace().getName(), > requestElement.getLocalName() , > requestElement.getNamespace().getPrefix())); > StringWriter writer = new StringWriter(); > > responseElement.serialize(XMLOutputFactory.newInstance().createXMLStreamWriter( > writer)); > writer.flush(); > > log.info("Response: " + writer.toString()); > > sender.finalizeInvoke(); > if (responseElement == null) { > log.info("Null response"); > return "Null response"; > } else { > log.info(responseElement.toString()); > return responseElement.toString(); > } > } >} > > >------------------------------------------------------------------------ > >--------------------------------------------------------------------- >To unsubscribe, e-mail: [EMAIL PROTECTED] >For additional commands, e-mail: [EMAIL PROTECTED] > -- Thanks, Deepal ................................................................ ~Future is Open~ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]