axis-c-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Falk Sippach" <f.sipp...@iez.com>
Subject AW: Settings for Java Webservice (used by C++-Client)
Date Fri, 03 Jun 2005 13:43:35 GMT
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:a.eriksson@global-imaging.net] 
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:f.sippach@iez.com] 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:a.eriksson@global-imaging.net]
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:f.sippach@iez.com] 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:a.eriksson@global-imaging.net]
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:f.sippach@iez.com] 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.

Mime
View raw message