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]