axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Scott McFadden" <SMcFad...@criticaltech.com>
Subject "Received content is fault"
Date Tue, 06 Mar 2007 23:49:17 GMT
I have written a webservice in C# / .NET 1.1.   I can use Axis C++
client  (Visual Studio 2003 / axis-c-1.6b-Win32) to successfully invoke
webmethods that return simple data types (strings, ints, etc.).

When I invoke a webmethod that returns a complex data type, I catch an
AxisException in my C++ code with the following error:

 

"Received content is fault"

 

Has anyone else had a similar problem?

 

 

 

Here is the client code (from Visual C++ 2003)

 

xsd__string message = NULL;

      ServiceSoap* pProxy = NULL;

      UploadSession* session = NULL;

 

      try

      {     

            pProxy = new
ServiceSoap("http://localhost/AxisTest/Service.asmx");

 

            //message = pProxy->HelloWorld();  //this invocation works
fine because of simple return type        

 

            //int repositoryId, int endPointId, string fileName, long
fileLength, string fileHash, string fileMetaData

            session = pProxy->CreateUploadSession(421, 0, "File.xml",
123, "abc", "metadata"); //we error here       

      }

      catch(AxisException& ex)

      {

            printf("%s", ex.what());      //"Received content is fault"


      }

 

 

Here is a HTTP trace of the request and the response...

 

<REQUEST>

POST /AxisTest/Service.asmx HTTP/1.1

Host: 127.0.0.1:81

Content-Type: text/xml; charset=UTF-8

SOAPAction: "http://criticaltech.com/webservices/CreateUploadSession"

Content-Length: 605

 

<?xml version='1.0' encoding='utf-8' ?>

<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<SOAP-ENV:Body>

<ns1:CreateUploadSession
xmlns:ns1="http://criticaltech.com/webservices/">

<ns1:repositoryId>421</ns1:repositoryId>

<ns1:endPointId>0</ns1:endPointId>

<ns1:fileName>File.xml</ns1:fileName>

<ns1:fileLength>123</ns1:fileLength>

<ns1:fileHash>abc</ns1:fileHash>

<ns1:fileMetaData>metadata</ns1:fileMetaData>

</ns1:CreateUploadSession>

</SOAP-ENV:Body>

</SOAP-ENV:Envelope>

 

<RESPONSE>

HTTP/1.1 100 Continue

Server: Microsoft-IIS/5.1

Date: Tue, 06 Mar 2007 23:37:04 GMT

X-Powered-By: ASP.NET

 

HTTP/1.1 200 OK

Server: Microsoft-IIS/5.1

Date: Tue, 06 Mar 2007 23:37:04 GMT

X-Powered-By: ASP.NET

X-AspNet-Version: 2.0.50727

Cache-Control: private, max-age=0

Content-Type: text/xml; charset=utf-8

Content-Length: 597

 

<?xml version="1.0" encoding="utf-8"?><soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><soap:Body><CreateUploadSes
sionResponse
xmlns="http://criticaltech.com/webservices/"><CreateUploadSessionResult>
<LastModified>0001-01-01T00:00:00</LastModified><CreationDate>0001-01-01
T00:00:00</CreationDate><FileSize>0</FileSize><EndPointId>0</EndPointId>
<RepositoryId>0</RepositoryId><OffSet>0</OffSet></CreateUploadSessionRes
ult></CreateUploadSessionResponse></soap:Body></soap:Envelope>

 

 

 

 

 

Here is the WSDL as generated by .NET / Internet Explorer

 

<?xml version="1.0" encoding="utf-8"?>

<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://criticaltech.com/webservices/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://criticaltech.com/webservices/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">

  <wsdl:types>

    <s:schema elementFormDefault="qualified"
targetNamespace="http://criticaltech.com/webservices/">

      <s:element name="HelloWorld">

        <s:complexType />

      </s:element>

      <s:element name="HelloWorldResponse">

        <s:complexType>

          <s:sequence>

            <s:element minOccurs="0" maxOccurs="1"
name="HelloWorldResult" type="s:string" />

          </s:sequence>

        </s:complexType>

      </s:element>

      <s:element name="ThrowSoapException">

        <s:complexType />

      </s:element>

      <s:element name="ThrowSoapExceptionResponse">

        <s:complexType />

      </s:element>

      <s:element name="CreateUploadSession">

        <s:complexType>

          <s:sequence>

            <s:element minOccurs="1" maxOccurs="1" name="repositoryId"
type="s:int" />

            <s:element minOccurs="1" maxOccurs="1" name="endPointId"
type="s:int" />

            <s:element minOccurs="0" maxOccurs="1" name="fileName"
type="s:string" />

            <s:element minOccurs="1" maxOccurs="1" name="fileLength"
type="s:long" />

            <s:element minOccurs="0" maxOccurs="1" name="fileHash"
type="s:string" />

            <s:element minOccurs="0" maxOccurs="1" name="fileMetaData"
type="s:string" />

          </s:sequence>

        </s:complexType>

      </s:element>

      <s:element name="CreateUploadSessionResponse">

        <s:complexType>

          <s:sequence>

            <s:element minOccurs="0" maxOccurs="1"
name="CreateUploadSessionResult" type="tns:UploadSession" />

          </s:sequence>

        </s:complexType>

      </s:element>

      <s:complexType name="UploadSession">

        <s:sequence>

          <s:element minOccurs="1" maxOccurs="1" name="LastModified"
type="s:dateTime" />

          <s:element minOccurs="1" maxOccurs="1" name="CreationDate"
type="s:dateTime" />

          <s:element minOccurs="0" maxOccurs="1" name="FileHash"
type="s:string" />

          <s:element minOccurs="0" maxOccurs="1" name="FileMetaData"
type="s:string" />

          <s:element minOccurs="0" maxOccurs="1" name="TempPath"
type="s:string" />

          <s:element minOccurs="1" maxOccurs="1" name="FileSize"
type="s:int" />

          <s:element minOccurs="0" maxOccurs="1" name="FileName"
type="s:string" />

          <s:element minOccurs="0" maxOccurs="1" name="Key"
type="s:string" />

          <s:element minOccurs="1" maxOccurs="1" name="EndPointId"
type="s:int" />

          <s:element minOccurs="1" maxOccurs="1" name="RepositoryId"
type="s:int" />

          <s:element minOccurs="1" maxOccurs="1" name="OffSet"
type="s:long" />

          <s:element minOccurs="0" maxOccurs="1" name="DestinationPath"
type="s:string" />

        </s:sequence>

      </s:complexType>

      <s:element name="SaveFileChunk">

        <s:complexType>

          <s:sequence>

            <s:element minOccurs="0" maxOccurs="1" name="sessionKey"
type="s:string" />

            <s:element minOccurs="0" maxOccurs="1" name="buffer"
type="s:base64Binary" />

          </s:sequence>

        </s:complexType>

      </s:element>

      <s:element name="SaveFileChunkResponse">

        <s:complexType />

      </s:element>

      <s:element name="CompleteUploadSession">

        <s:complexType>

          <s:sequence>

            <s:element minOccurs="0" maxOccurs="1" name="sessionKey"
type="s:string" />

          </s:sequence>

        </s:complexType>

      </s:element>

      <s:element name="CompleteUploadSessionResponse">

        <s:complexType />

      </s:element>

    </s:schema>

  </wsdl:types>

  <wsdl:message name="HelloWorldSoapIn">

    <wsdl:part name="parameters" element="tns:HelloWorld" />

  </wsdl:message>

  <wsdl:message name="HelloWorldSoapOut">

    <wsdl:part name="parameters" element="tns:HelloWorldResponse" />

  </wsdl:message>

  <wsdl:message name="ThrowSoapExceptionSoapIn">

    <wsdl:part name="parameters" element="tns:ThrowSoapException" />

  </wsdl:message>

  <wsdl:message name="ThrowSoapExceptionSoapOut">

    <wsdl:part name="parameters"
element="tns:ThrowSoapExceptionResponse" />

  </wsdl:message>

  <wsdl:message name="CreateUploadSessionSoapIn">

    <wsdl:part name="parameters" element="tns:CreateUploadSession" />

  </wsdl:message>

  <wsdl:message name="CreateUploadSessionSoapOut">

    <wsdl:part name="parameters"
element="tns:CreateUploadSessionResponse" />

  </wsdl:message>

  <wsdl:message name="SaveFileChunkSoapIn">

    <wsdl:part name="parameters" element="tns:SaveFileChunk" />

  </wsdl:message>

  <wsdl:message name="SaveFileChunkSoapOut">

    <wsdl:part name="parameters" element="tns:SaveFileChunkResponse" />

  </wsdl:message>

  <wsdl:message name="CompleteUploadSessionSoapIn">

    <wsdl:part name="parameters" element="tns:CompleteUploadSession" />

  </wsdl:message>

  <wsdl:message name="CompleteUploadSessionSoapOut">

    <wsdl:part name="parameters"
element="tns:CompleteUploadSessionResponse" />

  </wsdl:message>

  <wsdl:portType name="ServiceSoap">

    <wsdl:operation name="HelloWorld">

      <wsdl:input message="tns:HelloWorldSoapIn" />

      <wsdl:output message="tns:HelloWorldSoapOut" />

    </wsdl:operation>

    <wsdl:operation name="ThrowSoapException">

      <wsdl:input message="tns:ThrowSoapExceptionSoapIn" />

      <wsdl:output message="tns:ThrowSoapExceptionSoapOut" />

    </wsdl:operation>

    <wsdl:operation name="CreateUploadSession">

      <wsdl:input message="tns:CreateUploadSessionSoapIn" />

      <wsdl:output message="tns:CreateUploadSessionSoapOut" />

    </wsdl:operation>

    <wsdl:operation name="SaveFileChunk">

      <wsdl:input message="tns:SaveFileChunkSoapIn" />

      <wsdl:output message="tns:SaveFileChunkSoapOut" />

    </wsdl:operation>

    <wsdl:operation name="CompleteUploadSession">

      <wsdl:input message="tns:CompleteUploadSessionSoapIn" />

      <wsdl:output message="tns:CompleteUploadSessionSoapOut" />

    </wsdl:operation>

  </wsdl:portType>

  <wsdl:binding name="ServiceSoap" type="tns:ServiceSoap">

    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />

    <wsdl:operation name="HelloWorld">

      <soap:operation
soapAction="http://criticaltech.com/webservices/HelloWorld"
style="document" />

      <wsdl:input>

        <soap:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="ThrowSoapException">

      <soap:operation
soapAction="http://criticaltech.com/webservices/ThrowSoapException"
style="document" />

      <wsdl:input>

        <soap:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="CreateUploadSession">

      <soap:operation
soapAction="http://criticaltech.com/webservices/CreateUploadSession"
style="document" />

      <wsdl:input>

        <soap:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="SaveFileChunk">

      <soap:operation
soapAction="http://criticaltech.com/webservices/SaveFileChunk"
style="document" />

      <wsdl:input>

        <soap:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="CompleteUploadSession">

      <soap:operation
soapAction="http://criticaltech.com/webservices/CompleteUploadSession"
style="document" />

      <wsdl:input>

        <soap:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

  </wsdl:binding>

  <wsdl:binding name="ServiceSoap12" type="tns:ServiceSoap">

    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />

    <wsdl:operation name="HelloWorld">

      <soap12:operation
soapAction="http://criticaltech.com/webservices/HelloWorld"
style="document" />

      <wsdl:input>

        <soap12:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap12:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="ThrowSoapException">

      <soap12:operation
soapAction="http://criticaltech.com/webservices/ThrowSoapException"
style="document" />

      <wsdl:input>

        <soap12:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap12:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="CreateUploadSession">

      <soap12:operation
soapAction="http://criticaltech.com/webservices/CreateUploadSession"
style="document" />

      <wsdl:input>

        <soap12:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap12:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="SaveFileChunk">

      <soap12:operation
soapAction="http://criticaltech.com/webservices/SaveFileChunk"
style="document" />

      <wsdl:input>

        <soap12:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap12:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

    <wsdl:operation name="CompleteUploadSession">

      <soap12:operation
soapAction="http://criticaltech.com/webservices/CompleteUploadSession"
style="document" />

      <wsdl:input>

        <soap12:body use="literal" />

      </wsdl:input>

      <wsdl:output>

        <soap12:body use="literal" />

      </wsdl:output>

    </wsdl:operation>

  </wsdl:binding>

  <wsdl:service name="Service">

    <wsdl:port name="ServiceSoap" binding="tns:ServiceSoap">

      <soap:address location="http://localhost/axistest/service.asmx" />

    </wsdl:port>

    <wsdl:port name="ServiceSoap12" binding="tns:ServiceSoap12">

      <soap12:address location="http://localhost/axistest/service.asmx"
/>

    </wsdl:port>

  </wsdl:service>

</wsdl:definitions>

 

 

 

ScottM


Mime
View raw message