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]