You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Alastair FETTES <af...@mdacorporation.com> on 2006/08/05 00:55:20 UTC

[Axis] Null message contents with AXISCPP

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.

RE: [Axis] Null message contents with AXISCPP

Posted by Adrian Dick <ad...@uk.ibm.com>.
Hi,

Well, it's good to here we've resolved the first of your problems.

As for your second problem ....
Currently, I'm not too certain as to where your problem lies, however I do
have a couple of thoughts.

I notice the SOAP elements in your response message don't seem to exactly
match the names in your WSDL snippets.
Alternatively, I know the handling of attributes in Axis C++ is still
fairly basic, so you could be hitting some limitation there, possibly
relating to complex type elements with attributes but no child element.

We could make a better diagnosis of the problem if you're able to turn on
trace while reproducing this problem (see
http://ws.apache.org/axis/cpp/TraceGuide.html for details), and also
capture the SOAP response message.

Adrian
_______________________________________
Adrian Dick (adrian.dick@uk.ibm.com)

"Alastair FETTES" <af...@mdacorporation.com> wrote on 09/08/2006
00:22:14:

> Hi Adrian,
>
> I'm much happier now with that multi-ref situation worked out.  For one
> thing we have a layer on top of our w/s architecture that removes
> redundancies in the data and thus the benefits from using multi-ref
> aren't very high.  Much more importantly though is the fact that
> disabling multirefs solved the first of my problems.  The second problem
> is still causing me a wee bit of grief.
>
> The basic idea is I am trying to make my XML more efficient by using
> attributes as opposed to elements.  It also follows my own/our coding
> guidelines for XML and the general rule of thumb when authoring XML.
> When I convert our data holders from element to attributes though, I get
> the second problem.
>
> The following is a message that causes a SoapFaultException with the
> message "Cannot deserialize the requested element".
>
> <?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>
>         <fooResponse
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
>             <returnMessage attr1="foo" attr2="bar" attr3="hello world"
>                 xsi:type="ns1:fooOutputType"
>                 xmlns:ns1="http://www.foo.com/"/>
>         </fooResponse>
>     </soapenv:Body>
> </soapenv:Envelope>
>
> This is the schema that causes the problem:
> <?xml version="1.0"?>
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.foo.com/"
> xmlns:foo="http://www.foo.com/">
>     <xs:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>
>     <xs:complexType name="fooType">
>         <xs:sequence/>
>         <xs:attribute name="attr1" type="xs:string"/>
>         <xs:attribute name="attr2" type="xs:string"/>
>         <xs:attribute name="attr3" type="xs:string"/>
>     </xs:complexType>
> </xs:schema>
>
> Referred to by the following WSDL messages:
> ...
> <wsdl:message name="fooMessageFromStringRequest">
>     <wsdl:part name="inputMessage" type="xs:string"/>
> </wsdl:message>
> <wsdl:message name="fooMessageFromStringResponse">
>     <wsdl:part name="returnMessage" type="foo:fooType"/>
> </wsdl:message>
>
> <wsdl:message name="fooStringFromMessageRequest">
>     <wsdl:part name="inputMessage" type="foo:fooType"/>
> </wsdl:message>
> <wsdl:message name="fooStringFromMessageResponse">
>     <wsdl:part name="returnMessage" type="xs:string"/>
> </wsdl:message>
> ...
> <wsdl:operation name="fooMessageFromString"
> parameterOrder="inputMessage">
>     <wsdl:input message="foo:fooMessageFromStringRequest"/>
>     <wsdl:output message="foo:fooMessageFromStringResponse"/>
> </wsdl:operation>
> <wsdl:operation name="fooStringFromMessage"
> parameterOrder="inputMessage">
>     <wsdl:input message="foo:fooStringFromMessageRequest"/>
>     <wsdl:output message="foo:fooStringFromMessageResponse"/>
> </wsdl:operation>
> ...
>
> Client is an executable Axis-C++ application.  Server is Axis-Java
> hosted on Tomcat.  Server does not have a problem at all.  Axis-CPP
> causes the problems.
>
> When fooMessageFromString() is called, I get an SoapFaultException.
> When I call fooStringFromMessage() I get an unhandled exception (note: I
> am handling AxisException, SoapFaultException and OtherFaultException in
> my try/catch block).
>
> Have you ever seen problems such as this before?
>
> Thanks,
> 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.
>
>
> -----Original Message-----
> From: Adrian Dick [mailto:adrian.dick@uk.ibm.com]
> Sent: Monday, August 07, 2006 1:36 AM
> To: Apache AXIS C User List
> Subject: Re: [Axis] Null message contents with AXISCPP
>
> Hi,
>
> In reference to your first problem.  I notice your response SOAP message
> is
> making use of multi-ref.
> Unfortunately, this isn't currently supported by Axis C++.
>
> You don't mention which server you're using, but if it's Axis Java, you
> can
> disable multi-ref using the WSDD file (see
> http://ws.apache.org/axis/java/reference.html#GlobalAxisConfiguration ).
>
>
>
> What specific problems are you seeing when using attributes? Do you have
> any error messages?
>
> Regards,
> Adrian
> _______________________________________
> Adrian Dick (adrian.dick@uk.ibm.com)
>
>
> "Alastair FETTES" <af...@mdacorporation.com> wrote on 04/08/2006
> 23:55:20:
>
> > 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.
> > [attachment "example.wsdl" deleted by Adrian Dick/UK/IBM]
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-c-user-help@ws.apache.org
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org


RE: [Axis] Null message contents with AXISCPP

Posted by Alastair FETTES <af...@mdacorporation.com>.
Hi Adrian,

I'm much happier now with that multi-ref situation worked out.  For one
thing we have a layer on top of our w/s architecture that removes
redundancies in the data and thus the benefits from using multi-ref
aren't very high.  Much more importantly though is the fact that
disabling multirefs solved the first of my problems.  The second problem
is still causing me a wee bit of grief.

The basic idea is I am trying to make my XML more efficient by using
attributes as opposed to elements.  It also follows my own/our coding
guidelines for XML and the general rule of thumb when authoring XML.
When I convert our data holders from element to attributes though, I get
the second problem.

The following is a message that causes a SoapFaultException with the
message "Cannot deserialize the requested element".  

<?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>
        <fooResponse
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
            <returnMessage attr1="foo" attr2="bar" attr3="hello world" 
                xsi:type="ns1:fooOutputType" 
                xmlns:ns1="http://www.foo.com/"/>
        </fooResponse>
    </soapenv:Body>
</soapenv:Envelope>

This is the schema that causes the problem:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.foo.com/"
xmlns:foo="http://www.foo.com/">
    <xs:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>

    <xs:complexType name="fooType">
        <xs:sequence/>
        <xs:attribute name="attr1" type="xs:string"/>
        <xs:attribute name="attr2" type="xs:string"/>
        <xs:attribute name="attr3" type="xs:string"/>
    </xs:complexType>
</xs:schema>

Referred to by the following WSDL messages:
...
<wsdl:message name="fooMessageFromStringRequest">
    <wsdl:part name="inputMessage" type="xs:string"/>
</wsdl:message>
<wsdl:message name="fooMessageFromStringResponse">
    <wsdl:part name="returnMessage" type="foo:fooType"/>
</wsdl:message>
    
<wsdl:message name="fooStringFromMessageRequest">
    <wsdl:part name="inputMessage" type="foo:fooType"/>
</wsdl:message>
<wsdl:message name="fooStringFromMessageResponse">
    <wsdl:part name="returnMessage" type="xs:string"/>
</wsdl:message>
...
<wsdl:operation name="fooMessageFromString"
parameterOrder="inputMessage">
    <wsdl:input message="foo:fooMessageFromStringRequest"/>
    <wsdl:output message="foo:fooMessageFromStringResponse"/>
</wsdl:operation>
<wsdl:operation name="fooStringFromMessage"
parameterOrder="inputMessage">
    <wsdl:input message="foo:fooStringFromMessageRequest"/>
    <wsdl:output message="foo:fooStringFromMessageResponse"/>
</wsdl:operation>
...

Client is an executable Axis-C++ application.  Server is Axis-Java
hosted on Tomcat.  Server does not have a problem at all.  Axis-CPP
causes the problems.

When fooMessageFromString() is called, I get an SoapFaultException.
When I call fooStringFromMessage() I get an unhandled exception (note: I
am handling AxisException, SoapFaultException and OtherFaultException in
my try/catch block).

Have you ever seen problems such as this before?

Thanks,
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.


-----Original Message-----
From: Adrian Dick [mailto:adrian.dick@uk.ibm.com] 
Sent: Monday, August 07, 2006 1:36 AM
To: Apache AXIS C User List
Subject: Re: [Axis] Null message contents with AXISCPP

Hi,

In reference to your first problem.  I notice your response SOAP message
is
making use of multi-ref.
Unfortunately, this isn't currently supported by Axis C++.

You don't mention which server you're using, but if it's Axis Java, you
can
disable multi-ref using the WSDD file (see
http://ws.apache.org/axis/java/reference.html#GlobalAxisConfiguration ).



What specific problems are you seeing when using attributes? Do you have
any error messages?

Regards,
Adrian
_______________________________________
Adrian Dick (adrian.dick@uk.ibm.com)


"Alastair FETTES" <af...@mdacorporation.com> wrote on 04/08/2006
23:55:20:

> 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.
> [attachment "example.wsdl" deleted by Adrian Dick/UK/IBM]
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org


Re: [Axis] Null message contents with AXISCPP

Posted by Adrian Dick <ad...@uk.ibm.com>.
Hi,

In reference to your first problem.  I notice your response SOAP message is
making use of multi-ref.
Unfortunately, this isn't currently supported by Axis C++.

You don't mention which server you're using, but if it's Axis Java, you can
disable multi-ref using the WSDD file (see
http://ws.apache.org/axis/java/reference.html#GlobalAxisConfiguration ).



What specific problems are you seeing when using attributes? Do you have
any error messages?

Regards,
Adrian
_______________________________________
Adrian Dick (adrian.dick@uk.ibm.com)


"Alastair FETTES" <af...@mdacorporation.com> wrote on 04/08/2006
23:55:20:

> 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.
> [attachment "example.wsdl" deleted by Adrian Dick/UK/IBM]
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-user-help@ws.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-user-help@ws.apache.org