axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Susantha Kumara" <>
Subject Re: provider="CPP:RPC" , provider = "C:RPC"
Date Fri, 17 Oct 2003 10:44:27 GMT

In the Axis C++ architecture a wrapper acts as a provider. And at this
moment we generate wrappers in only C++. This generated wrapper (by the
WSDL2Ws tool) will be almost same for both C and C++ skeletons except the
"extern metho()" lines and where the wrapper calls the actual skeleton
There are known interfaces between Axis and this wrapper through which the
wrapper and Axis calls each other (IMessageData, IWrapperSoapSerializer,
IWrapperSoapDeSerializer, BasicHandler etc).

But above architecture always needs a C++ compiler even if the skeleton is
in C (web service is in C).

We plan to solve above problem by having wrappers generated in C itself for
C skeletons. Then web service developer will need only a C compiler to
develop and deploy a C web service.

The same issue is there at the client side too. And we plan to solve in the
same way.

But how do we get rid of the above mentioned interfaces ??? they are C++ and
C wrappers cannot use them ????

The solution we have in mind is to use KNOWN FUNCTION POINTER TABLES.

Then the Axis and the C wrapper will have set of known function pointer
tables that serves the same purpose of the interfaces in C++ wrappers.

I hope with above solution we can compile and link a web service using only
C compiler and a linker. Now we have a .dll or .so.

Now when the AxisEngine is going to load this web service the AxisEngine has
to know whether this is a C or CPP web service. This information will be in
the server.wsdd (provider="CPP:RPC" , provider = "C:RPC").

In case of C web service AxisEngine passes it a function pointer table.
In case of C++ web service AxisEngine passes it an interface (as it is done

This is how we have figured out to do this at the moment and your feedback
and suggestions are welcome.

Also ANY VOLUNTEER to manually write a COM wrapper ???????????????????????



----- Original Message -----
From: "Lilantha Darshana" <>
To: <>
Sent: Thursday, October 16, 2003 8:29 PM
Subject: RE: provider="CPP:RPC" , provider = "C:RPC"

What is the difference between CPP:RPC & C:RPC??

I guess one of this would be enough instead of two
provider types.


Debian GNU/Linux (kernel 2.4.21-rc1)

The primary difference [...] is that the Java program will reliably and
obviously crash, whereas the C Program will do something obscure
-- Java Language Tutorial

-----Original Message-----
From: Tom Jordahl []
Sent: Thursday, October 16, 2003 8:21 PM
To: ''
Subject: RE: provider="CPP:RPC" , provider = "C:RPC"

Sounds like a reasonable thing to do.

Tom Jordahl
Macromedia Server Development

-----Original Message-----
From: Dimuthu Leelarathne []
Sent: Wednesday, October 15, 2003 6:00 AM
Subject: provider="CPP:RPC" , provider = "C:RPC"

 Hi all,

 Deployment descriptor for axis-java services specifies it's provider as
provider="java:RPC" in the wsdd. Similarly we think of providing
provider="CPP:RPC" , provider = "C:RPC" for axis-cpp and axis-c
implementations. What do you think about it ?


View raw message