Hi,
I am concerned that you are using rpc-encoded rather than doc-literal.
Doc-literal is well tested in Axis C++ and is WS-I compliant, whereas
rpc-encoded is less well tested. I took your doc-literal WSDL and I was
able to reproduce the problem you saw, so I've raised a JIRA AXISCPP-672 to
record the problem.
Mark
Mark Whitlock
IBM

----- Forwarded by Mark Whitlock/UK/IBM on 06/06/2005 14:21 -----
                                                                       
             "Falk Sippach"                                            
             <[EMAIL PROTECTED]                                         
             m>                                                         To
                                       "Apache AXIS C User List"       
             03/06/2005 14:43          <axis-c-user@ws.apache.org>     
                                                                        cc
                                                                       
             Please respond to                                     Subject
              "Apache AXIS C           AW: Settings for Java Webservice
                User List"             (used by C++-Client)            
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       
                                                                       




Hi Anders,

Which kind of complex types do you have?

My complex object looks as follows:
class object
{
             int id;
             String name;
             String uuid;
             objecttype type;
             attribute[] atts;
}

objecttype and attribute are other complex types.

Here is it as a return object, created by Axis Java (rpc/enc):

<getObjectReturn xsi:type="ns1:IEZObject">
  <attributes xsi:type="ns1:IEZAttribute"></attributes>
  .. 10 times
  <attributes xsi:type="ns1:IEZAttribute"></attributes>
  <id xsi:type="xsd:int">1</id>
  <name xsi:type="soapenc:string">Testobjekt1</name>
  <type xsi:type="ns1:IEZObjectType">
    <description xsi:type="soapenc:string">Beschreibung zu
Objekttyp1</description>
    <id xsi:type="xsd:int">1</id>
    <name xsi:type="soapenc:string">Objekttyp1</name>
  </type>
  <uuid xsi:type="soapenc:string">uuid-34234-23423</uuid>
</getObjectReturn>

<attributes> looks as follows:

<attributes xsi:type="ns1:IEZAttribute">
  <id xsi:type="xsd:int">1</id>
  <type xsi:type="ns1:IEZAttributeType">
    <dataType xsi:type="xsd:int">1</dataType>
    <description xsi:type="soapenc:string">Beschreibung zu
Attributtyp2</description>
    <enumeration xsi:type="soapenc:string" xsi:nil="true"/>
    <id xsi:type="xsd:int">2</id>
    <name xsi:type="soapenc:string">Attributtyp2</name>
    <range xsi:type="soapenc:string" xsi:nil="true"/>
    <step xsi:type="soapenc:string" xsi:nil="true"/>
    <unit xsi:type="soapenc:string" xsi:nil="true"/>
  </type>
  <uuid xsi:type="soapenc:string">uuid-123123-123123-123</uuid>
  <value xsi:type="soapenc:string">Wert 2</value>
</attributes>

Isn't it strange, that the attributes array isn't wrapped as array. The
soapdeserializer try to read the id (of object) first, but he finds the
first attribute element. Is this complex type to complex? What should I do?

Falk.

-----Ursprüngliche Nachricht-----
Von: Anders Eriksson [mailto:[EMAIL PROTECTED]
Gesendet: Freitag, 3. Juni 2005 14:21
An: Apache AXIS C User List
Betreff: RE: Settings for Java Webservice (used by C++-Client)


No, never tried with beans straight off. I've used complex types (objects)
with string members and arrays containing objects with strings.

Well, as I don't have direct insight in the java side I don't really know
if it's beans or not.

I also use axis in the other way, java clients connecting to my C++ sever.
In that case I specify my complex types (again objects containing string
members) directly in a wsdl file...


/Anders


-----Message d'origine-----
De : Falk Sippach [mailto:[EMAIL PROTECTED] Envoyé : vendredi 3 juin 2005
13:32 Ŕ : Apache AXIS C User List Objet : AW: Settings for Java Webservice
(used by C++-Client)


Hi Anders,

another question: Have you ever tried to call you webservice methods with
complex types (beans, arrays of beans)? The parameter serialization is not
really working. Do you have any hints.

Thanks,
Falk.

-----Ursprüngliche Nachricht-----
Von: Anders Eriksson [mailto:[EMAIL PROTECTED]
Gesendet: Freitag, 3. Juni 2005 09:21
An: Apache AXIS C User List
Betreff: RE: Settings for Java Webservice (used by C++-Client)

Hi,

I am not creating the wsdl file my self. However, I believe that it was
created with java2wsdl using some standard arguments.

In fact, I did have some troubles with the wsdl file.
Under the tag <wsdl:binding, <wsdl:operation there is a <wsdlsoap:operation
tag. This tag had soapAction="" in the file given to me and it should be
"WebserviceName#MethodName".

If this doesn't help, I could probably get some more information about how
the wsdl file was created.

/Anders


-----Message d'origine-----
De : Falk Sippach [mailto:[EMAIL PROTECTED] Envoyé : jeudi 2 juin 2005
19:35 Ŕ : Apache AXIS C User List Objet : AW: Settings for Java Webservice
(used by C++-Client)


Hello Anders,

thanks for providing your experiences. The first two steps I'm already
using.

It would be nice if you can tell me a bit more. Do you generate the
wsdl-file from a Java interface (java2wsdl) or do you write it by your own?
If you use java2wsdl, which command line parameter do you use.

Can you send me a small example (Java interface and wsdl-file).

Thanks for your help,
Falk.

-----Ursprüngliche Nachricht-----
Von: Anders Eriksson [mailto:[EMAIL PROTECTED]
Gesendet: Donnerstag, 2. Juni 2005 17:35
An: Apache AXIS C User List
Betreff: RE: Settings for Java Webservice (used by C++-Client)


Hi Falk,

I have an Axis C++ client/Axis Java server using rpc.

Corrected the following three things:

1) disable href/multiref on the server
2) slightly changing some code in AxisClient.dll
   SoapDeSerializer.cpp::getXSDType to allow
   soapenc:string
3) making sure the server doesn't return empty
   arrays (as AxisClient can't deserialize those)

Well, not very beautiful but it works.

/Anders

-----Message d'origine-----
De : Falk Sippach [mailto:[EMAIL PROTECTED] Envoyé : jeudi 2 juin 2005
17:16 Ŕ : Apache AXIS C User List Objet : Re: Settings for Java Webservice
(used by C++-Client)


Hello,

I need some more help. Is there anybody who has successfully developed an
Axis C++ client calling a Java Webservice? At the moment it's not working
at all. Are there other products (C++), which work together with Java Axis
webservices?

I've read somewhere I should use doc/lit as message style. I've tried.
First I've generated a wsdl-file with java2wsdl. Then I've created the
server skeletons (wsdl2java) and the client stubs (wsdl2ws). But wsdl2ws
fails with a not reproducable error:

--------------------
java.util.NoSuchElementException
        at java.util.HashMap$HashIterator.nextEntry(Unknown Source)
        at java.util.HashMap$ValueIterator.next(Unknown Source)
        at
org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.addDocumentStyleInputMessageToMe
thodInfo(Unknown Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.setMethodInfo(Unknown
Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.getServiceInfo(Unknown
Source)
        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.generateWrappers(Unknown
Source)

        at org.apache.axis.wsdl.wsdl2ws.WSDL2Ws.main(Unknown Source)

Code generation failed. Please see errors above.
--------------------

If I use rpc/lit, the stub code generation succeeds. But the soap messages
look like this:

--------------------
<getStringResponse>
             <getStringReturn>test string</getStringReturn>
</getStringResponse>
--------------------

There is no type definition and the client can't read any string.


It works, if I use rpc/encoded. But then I have the problem with URI_XSD
and URI_ENC (ok, I can fix it with the patch). And I can't get int values
or complex types with ints inside. It still doesn't work in the
1.6 alpha from June 1st, 3 a. m. Maybe in the next nightly build it will
work, because Adrian has changed it yesterday (after the last nightly
build?).

What may I do wrong? Please help.

Thanks,
Falk.

Reply via email to