axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alastair FETTES" <afet...@mdacorporation.com>
Subject [Axis] Null message contents with AXISCPP
Date Fri, 04 Aug 2006 22:55:20 GMT
I'm currently having a problem running the Axis-C 1.6b. 

All environment settings have been set as appropriate and I am able to
run *simple* methods.  I.e. The "echoString" test case works for me (see
attached wsdl).  I am correctly able to send the value out and retrieve
the mssage back.  However, when I try to run more complex services I run
into problems.  I.e.  "echoMessageFromString" (see attached wsdl).

Attached is a copy of my WSDL.  Server side is java and I have tested it
through the URL interface and visibily inspected the response XML to be
the following:

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Body>
    
        <echoMessageFromStringResponse 
 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
            <returnMessage href="#id0"/>
        </echoMessageFromStringResponse>
        
        <multiRef id="id0" soapenc:root="0" 
 
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
        xsi:type="ns1:messageOutputType" 
        xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
        xmlns:ns1="http://foo.com/">
            <attr3 xsi:type="xsd:string">my attribute value 3</attr3>
            <attr4 xsi:type="xsd:string">my attribute value 4</attr4>
        </multiRef>
    </soapenv:Body>
</soapenv:Envelope>

This is as expected therefore I am not worried about the java-server
side (other than the lack of default namespace and the foo.com namespace
declared top level).  The problem lies on the cpp-client side. 

The following bit of (generated) code always returns null:
messageOutputType* foo::echoMessageFromString(xsd__string Value0)
{
    ...
    pReturn = (messageOutputType *) m_pCall->getCmplxObject( 
        (void *) Axis_DeSerialize_messageOutputType,
        (void *) Axis_Create_messageOutputType,
        (void *) Axis_Delete_messageOutputType,
        "returnMessage",
        0);
    ...
}

Another problem is when I switch from using child elements to attributes
for transfer of data.  I run into problems that Axis is unable to
serialize/deserialize the messages in this case.  The following is an
example of a schema type that I have encountered this problem with:

    <xs:complexType name="messageOutputType">
        <xs:sequence/>
        <xs:attribute name="attr3" type="xs:string"/>
        <xs:attribute name="attr4" type="xs:string"/>
    </xs:complexType>

All problems are occuring on the CPP side mind you.  To sum up what this
means is I'm able to pass strings and other simple types back and forth
but not (slightly) more complex messages, rending the CPP side useless
for me.  I could use Axis2 but have had no luck with code generation on
that side (see [Axis2] Code generation to C email from 2/8/2006).

Any help would be most appreciated.

Cheers,
Alastair

This e-mail and any attachments are intended solely for the use of the
intended recipient(s) and may contain legally privileged, proprietary
and/or confidential information.  Any use, disclosure, dissemination,
distribution or copying of this e-mail and any attachments for any
purposes that have not been specifically authorized by the sender is
strictly prohibited.  If you are not the intended recipient, please
immediately notify the sender by reply e-mail and permanently delete all
copies and attachments.

The entire content of this e-mail is for "information purposes" only and
should not be relied upon by the recipient in any way unless otherwise
confirmed in writing by way of letter or facsimile.

Mime
View raw message