You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Christopher Snow <sn...@snowconsulting.co.uk> on 2009/12/30 13:35:13 UTC

new axis2 service - problem calling with C# (as well as java)

I'm having problems trying to call findPartiesById using a java 6 client 
and also with a C# 3.5 client.

I am getting a valid SOAP response from the server from the client call 
(shown below the code), but the generated client code doesn't appear to 
be able to re-use the IN object for storing the OUT value.  This is the 
same problem I had experience with the java code.

Has anyone managed to generate a SOAP client against the ofbiz generated 
wsdl and successfully make a call?

Can you spot where I am going wrong?

Many thanks in advance,

Chris

------------ C# code ---------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using ConsoleApplication1.ServiceReference1;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {           
            findPartiesByIdPortTypeClient client =
                new findPartiesByIdPortTypeClient();

            mapEntry[] mapEntryArray = new mapEntry[3];
            mapEntryArray[0] = makeMap("idToFind", "admin");
            mapEntryArray[1] = makeMap("login.username", "admin");
            mapEntryArray[2] = makeMap("login.password", "ofbiz");

            client.findPartiesById(ref mapEntryArray);

            Console.WriteLine(mapEntryArray.Length); // is 0, but should 
be 3

            Console.Read();
        }

        static mapEntry makeMap(String keyString, String valString) {
            
            stdString mapKeyString = new stdString();
            stdString mapValString = new stdString();

            mapKeyString.value = keyString;
            mapValString.value = valString;

            mapKey key = new mapKey();
            key.stdString = mapKeyString;

            mapValue val = new mapValue();
            val.Item = mapValString;
            val.ItemElementName = ItemChoiceType.stdString;
            
            mapEntry entry = new mapEntry();
            entry.mapKey = key;
            entry.mapValue = val;

            return entry;
        }
    }
}


-------------- SOAP Response ----------------


Date: Wed, 30 Dec 2009 12:00:38 GMT
Set-Cookie: JSESSIONID=018C937189AF33CDD44D2C69862E5CE1.jvm1; 
Path=/webtools
Set-Cookie: OFBiz.Visitor=11818; Expires=Thu, 30-Dec-2010 12:00:38 GMT; 
Path=/
Content-Type: text/xml;charset=utf-8
Vary: Accept-Encoding
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
 
4e4
<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope 
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><axis2ns7:findPartiesByIdResponse 
xmlns:axis2ns7="http://ofbiz.apache.org/service/"><map-Map>
        <map-Entry>
            <map-Key>
                <std-String value="responseMessage"></std-String>
            </map-Key>
            <map-Value>
                <std-String value="success"></std-String>
            </map-Value>
        </map-Entry>
        <map-Entry>
            <map-Key>
                <std-String value="party"></std-String>
            </map-Key>
            <map-Value>
                <eeval-Party createdStamp="2009-12-24 16:13:30.949" 
createdTxStamp="2009-12-24 16:13:30.946" lastUpdatedStamp="2009-12-24 
16:13:31.892" lastUpdatedTxStamp="2009-12-24 16:13:31.553" 
partyId="admin" partyTypeId="PERSON"></eeval-Party>
            </map-Value>
        </map-Entry>
        <map-Entry>
            <map-Key>
                <std-String value="partiesFound"></std-String>
            </map-Key>
            <map-Value>
                <col-Collection></col-Collection>
            </map-Value>
        </map-Entry>
    
</map-Map></axis2ns7:findPartiesByIdResponse></soapenv:Body></soapenv:Envelope> 

0