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.