No, the client throws the exception when trying to create the request
message. It doesn't actually reach the server.
Kimberly Nicholls
keith chapman wrote:
I presume this error occurs when you receive the response. Can you
check the messages using TCP Monitor please and post it here.
Thanks,
Keith.
On 10/22/07, * Kimberly Nicholls* <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>> wrote:
I am having trouble creating a SOAP message from a generated
client when the message includes attachments -- the client throws
"org.apache.axiom.soap.SOAPProcessingException: First Element must
contain the local name, Envelope , but found html." I am using
axis2 1.3, and I can make requests to other methods (without
attachments) in the same service with no problems.
Here's what I did:
- set enableMTOM to true in axis2.xml
- created method in my POJO service: public long
createAttachment(long messageID, DataHandler attData)
- generated client stub via wsdl2java
- added these lines to client stub:
_serviceClient.getOptions().setProperty(
Constants.Configuration.ENABLE_MTOM,
Constants.VALUE_TRUE);
_serviceClient.getOptions().setTimeOutInMilliSeconds(10000);
- created client that runs the method like this:
DataHandler attData = new DataHandler(new
FileDataSource(filename));
long attachmentID = stub.createAttachment(messageID,
attData);
When I run the client, I get
[INFO] OMException in getSOAPBuilder
org.apache.axiom.soap.SOAPProcessingException: First Element must
contain the local name, Envelope , but found html
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:219)
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:177)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:163)
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:161)
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:110)
at
org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:609)
at
org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:178)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:111)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:87)
at
org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:326)
at
org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:389)
at
org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:211)
at
org.apache.axis2.client.OperationClient.execute(OperationClient.java:163)
...
Caused by: org.apache.axiom.soap.SOAPProcessingException: First
Element must contain the local name, Envelope , but found html
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.constructNode(StAXSOAPModelBuilder.java:219)
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.createOMElement(StAXSOAPModelBuilder.java:177)
at
org.apache.axiom.om.impl.builder.StAXOMBuilder.next(StAXOMBuilder.java:163)
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.getSOAPEnvelope(StAXSOAPModelBuilder.java:161)
at
org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder.<init>(StAXSOAPModelBuilder.java:110)
at
org.apache.axis2.builder.BuilderUtil.getSOAPBuilder(BuilderUtil.java:609)
at
org.apache.axis2.transport.TransportUtils.createDocumentElement(TransportUtils.java:178)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:111)
at
org.apache.axis2.transport.TransportUtils.createSOAPMessage(TransportUtils.java:87)
... 6 more
Running other methods in the same client with the same service
work fine, if they don't have attachments. The file I'm trying to
send is a 2.5k jpg. What am I doing wrong?
Kimberly
--
Keith Chapman
WSO2 Inc.
Oxygen for Web Services Developers.
http://wso2.org/