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 Markus Krogemann <ma...@cologne-systems.de> on 2005/05/20 13:22:21 UTC

Version Mismatch (Envelope schema)

Dear List,

this may well be an often-asked question but I did not find any entries
in the FAQ-List or did not look under the right subject, so here goes:

>From a webservice server I receive a response envelope starting like this:

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">

Now I think the namespace declaration is equivalent to a versioning, right?
My application asks Axis to deserialize the response and Axis throws an
exception like below. Is there a way to tell Axis how to deal with this
kind of response? I am using axis1.1 (have tried 1.2, but same result).

It works ok if the response starts like this:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope">

Thanks for any pointers,
Markus

AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}VersionMismatch
 faultSubcode:
 faultString: Version Mismatch
 faultActor:
 faultNode:
 faultDetail:
        {http://xml.apache.org/axis/}stackTrace:Version Mismatch
        at
org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:102)
        at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
        at
org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
        at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
Source)
        at
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
        at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
Source)
        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
        at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
        at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
        at org.apache.axis.client.Call.invoke(Call.java:2748)
        at org.apache.axis.client.Call.invoke(Call.java:1902)
....

Re: Version Mismatch (Envelope schema)

Posted by Markus Krogemann <ma...@cologne-systems.de>.
Unfortunately, no WSDL exists. The service I am trying to consume
appears to be using a proprietary system and neglecting some standards.
I need to put the SOAPEnvelope together by hand (using Axis classes) and
the server is very picky when it comes to certain namespace declarations
(which are totally legal as far as my XML knowledge is concerned).
Anyway, I am trying to find a solution with the service producer now.

Thanks for your input,
Markus

Anne Thomas Manes wrote:
> Take a look at your WSDL and tell us what the transport attribute in
> the <wsdlsoap:binding> definition says. That will determine which
> version of SOAP Axis is expecting.
> 
> It should say either:
>    transport="http://schemas.xmlsoap.org/soap/http" (SOAP 1.1)
> 
> or 
>    transport="http://www.w3.org/2003/05/soap-envelope" (SOAP 1.2)
> 
> You should not be using any of the pre-standard SOAP 1.2 working draft
> versions, such as
>    transport="http://www.w3.org/2001/12/soap-envelope".
> 
> Anne
> 
>  
> 
> On 5/20/05, Markus Krogemann <ma...@cologne-systems.de> wrote:
> 
>>Dear List,
>>
>>this may well be an often-asked question but I did not find any entries
>>in the FAQ-List or did not look under the right subject, so here goes:
>>
>>>From a webservice server I receive a response envelope starting like this:
>>
>><SOAP-ENV:Envelope
>>xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
>>
>>Now I think the namespace declaration is equivalent to a versioning, right?
>>My application asks Axis to deserialize the response and Axis throws an
>>exception like below. Is there a way to tell Axis how to deal with this
>>kind of response? I am using axis1.1 (have tried 1.2, but same result).
>>
>>It works ok if the response starts like this:
>>
>><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope">
>>
>>Thanks for any pointers,
>>Markus
>>
>>AxisFault
>> faultCode: {http://schemas.xmlsoap.org/soap/envelope/}VersionMismatch
>> faultSubcode:
>> faultString: Version Mismatch
>> faultActor:
>> faultNode:
>> faultDetail:
>>        {http://xml.apache.org/axis/}stackTrace:Version Mismatch
>>        at
>>org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:102)
>>        at
>>org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
>>        at
>>org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
>>        at
>>org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
>>Source)
>>        at
>>org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
>>Source)
>>        at
>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>>Source)
>>        at
>>org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
>>Source)
>>        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>Source)
>>        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
>>Source)

>>        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>>        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>>        at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
>>        at
>>org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
>>        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
>>        at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
>>        at
>>org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
>>        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
>>        at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
>>        at org.apache.axis.client.Call.invoke(Call.java:2748)
>>        at org.apache.axis.client.Call.invoke(Call.java:1902)
>>....
>>
> 
> 
> 

Re: Version Mismatch (Envelope schema)

Posted by Anne Thomas Manes <at...@gmail.com>.
Take a look at your WSDL and tell us what the transport attribute in
the <wsdlsoap:binding> definition says. That will determine which
version of SOAP Axis is expecting.

It should say either:
   transport="http://schemas.xmlsoap.org/soap/http" (SOAP 1.1)

or 
   transport="http://www.w3.org/2003/05/soap-envelope" (SOAP 1.2)

You should not be using any of the pre-standard SOAP 1.2 working draft
versions, such as
   transport="http://www.w3.org/2001/12/soap-envelope".

Anne

 

On 5/20/05, Markus Krogemann <ma...@cologne-systems.de> wrote:
> Dear List,
> 
> this may well be an often-asked question but I did not find any entries
> in the FAQ-List or did not look under the right subject, so here goes:
> 
> From a webservice server I receive a response envelope starting like this:
> 
> <SOAP-ENV:Envelope
> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
> 
> Now I think the namespace declaration is equivalent to a versioning, right?
> My application asks Axis to deserialize the response and Axis throws an
> exception like below. Is there a way to tell Axis how to deal with this
> kind of response? I am using axis1.1 (have tried 1.2, but same result).
> 
> It works ok if the response starts like this:
> 
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2001/12/soap-envelope">
> 
> Thanks for any pointers,
> Markus
> 
> AxisFault
>  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}VersionMismatch
>  faultSubcode:
>  faultString: Version Mismatch
>  faultActor:
>  faultNode:
>  faultDetail:
>         {http://xml.apache.org/axis/}stackTrace:Version Mismatch
>         at
> org.apache.axis.message.EnvelopeBuilder.startElement(EnvelopeBuilder.java:102)
>         at
> org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1048)
>         at
> org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
>         at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown
> Source)
>         at
> org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
> Source)
>         at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
> Source)
>         at
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
>         at org.apache.xerces.parsers.XML11Configuration.parse(Unknown
> Source)
>         at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>         at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>         at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
>         at
> org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
>         at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
>         at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
>         at
> org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
>         at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
>         at org.apache.axis.client.Call.invokeEngine(Call.java:2765)
>         at org.apache.axis.client.Call.invoke(Call.java:2748)
>         at org.apache.axis.client.Call.invoke(Call.java:1902)
> ....
>