You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by su...@apache.org on 2004/04/08 15:23:52 UTC
cvs commit: ws-axis/c/samples/server/simple Calculator.cpp Calculator.h Calculator.wsdl CalculatorService.cpp CalculatorWrapper.cpp CalculatorWrapper.h Makefile.am deploy.wsdd undeploy.wsdd
susantha 2004/04/08 06:23:52
Modified: c/samples/server/interoptests/base InteropTestPortType.h
Added: c/samples/client/simple CalcClient.cpp Calculator.cpp
Calculator.h Makefile.am
c/samples/server/simple Calculator.cpp Calculator.h
Calculator.wsdl CalculatorService.cpp
CalculatorWrapper.cpp CalculatorWrapper.h
Makefile.am deploy.wsdd undeploy.wsdd
Log:
Adding files for Simple Calculator Sample
Revision Changes Path
1.1 ws-axis/c/samples/client/simple/CalcClient.cpp
Index: CalcClient.cpp
===================================================================
#include "Calculator.h"
void PrintUsage();
bool IsNumber(const char* p);
int main(int argc, char* argv[])
{
char endpoint[256];
const char* server="localhost";
const char* port="80";
const char* op = 0;
const char* p1 = 0;
const char* p2 = 0;
int i1=0, i2=0;
if (argc < 6)
{
PrintUsage();
}
else
{
server = argv[1];
port = argv[2];
}
printf("Sending Requests to Server http://%s:%s ........\n\n", server, port);
sprintf(endpoint, "http://%s:%s/axis/Calculator", server, port);
Calculator ws(endpoint);
op = argv[3];
p1 = argv[4];
p2 = argv[5];
if (!IsNumber(p1))
{
printf("Invalid value for first <parameter>\n\n");
PrintUsage();
}
if (!IsNumber(p2))
{
printf("Invalid value for second <parameter>\n\n");
PrintUsage();
}
i1 = atoi(p1);
i2 = atoi(p2);
if (strcmp(op, "add") == 0)
{
printf("Result : %d\n\n", ws.add(i1, i2));
}
else if (strcmp(op, "sub") == 0)
{
printf("Result : %d\n\n", ws.sub(i1, i2));
}
else if (strcmp(op, "mul") == 0)
{
printf("Result : %d\n\n", ws.mul(i1, i2));
}
else if (strcmp(op, "div") == 0)
{
printf("Result : %d\n\n", ws.div(i1, i2));
}
else
{
printf("Invalid operation %s\n\n", op);
PrintUsage();
}
return 0;
}
void PrintUsage()
{
printf("Usage :\n Calculator <server> <port> <operation> <parameter> <parameter>\n\n");
exit(1);
}
bool IsNumber(const char* p)
{
for (int x=0; x < strlen(p); x++)
{
if (!isdigit(p[x])) return false;
}
return true;
}
1.1 ws-axis/c/samples/client/simple/Calculator.cpp
Index: Calculator.cpp
===================================================================
/*
* This is the Client Stub implementation file genarated by WSDL2Ws tool.
* Calculator.cpp: implemtation for the Calculator.
*
*/
#include "Calculator.h"
#include <axis/server/AxisWrapperAPI.h>
bool CallBase::bInitialized;
CallFunctions CallBase::ms_VFtable;
Calculator::Calculator(const char* pchEndpointUri)
{
m_pCall = new Call();
m_pCall->SetProtocol(APTHTTP);
m_pCall->SetEndpointURI(pchEndpointUri);
}
Calculator::~Calculator()
{
delete m_pCall;
}
/*Methods corresponding to the web service methods*/
/*
* This method wrap the service methodadd
*/
int Calculator::add(int Value0, int Value1)
{
int Ret;
if (AXIS_SUCCESS != m_pCall->Initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
m_pCall->SetTransportProperty(SOAPACTION_HEADER , "Calculator#add");
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("add", "http://localhost/axis/Calculator");
m_pCall->AddParameter((void*)&Value0, "in0", XSD_INT);
m_pCall->AddParameter((void*)&Value1, "in1", XSD_INT);
if (AXIS_SUCCESS == m_pCall->Invoke())
{
if(AXIS_SUCCESS == m_pCall->CheckMessage("addResponse", "http://localhost/axis/Calculator"))
{
Ret = m_pCall->GetElementAsInt("addReturn", 0);
}
}
m_pCall->UnInitialize();
return Ret;
}
/*
* This method wrap the service methodsub
*/
int Calculator::sub(int Value0, int Value1)
{
int Ret;
if (AXIS_SUCCESS != m_pCall->Initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
m_pCall->SetTransportProperty(SOAPACTION_HEADER , "Calculator#sub");
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("sub", "http://localhost/axis/Calculator");
m_pCall->AddParameter((void*)&Value0, "in0", XSD_INT);
m_pCall->AddParameter((void*)&Value1, "in1", XSD_INT);
if (AXIS_SUCCESS == m_pCall->Invoke())
{
if(AXIS_SUCCESS == m_pCall->CheckMessage("subResponse", "http://localhost/axis/Calculator"))
{
Ret = m_pCall->GetElementAsInt("subReturn", 0);
}
}
m_pCall->UnInitialize();
return Ret;
}
/*
* This method wrap the service methodmul
*/
int Calculator::mul(int Value0, int Value1)
{
int Ret;
if (AXIS_SUCCESS != m_pCall->Initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
m_pCall->SetTransportProperty(SOAPACTION_HEADER , "Calculator#mul");
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("mul", "http://localhost/axis/Calculator");
m_pCall->AddParameter((void*)&Value0, "in0", XSD_INT);
m_pCall->AddParameter((void*)&Value1, "in1", XSD_INT);
if (AXIS_SUCCESS == m_pCall->Invoke())
{
if(AXIS_SUCCESS == m_pCall->CheckMessage("mulResponse", "http://localhost/axis/Calculator"))
{
Ret = m_pCall->GetElementAsInt("addReturn", 0);
}
}
m_pCall->UnInitialize();
return Ret;
}
/*
* This method wrap the service methoddiv
*/
int Calculator::div(int Value0, int Value1)
{
int Ret;
if (AXIS_SUCCESS != m_pCall->Initialize(CPP_RPC_PROVIDER, NORMAL_CHANNEL)) return Ret;
m_pCall->SetTransportProperty(SOAPACTION_HEADER , "Calculator#div");
m_pCall->SetSOAPVersion(SOAP_VER_1_1);
m_pCall->SetOperation("div", "http://localhost/axis/Calculator");
m_pCall->AddParameter((void*)&Value0, "in0", XSD_INT);
m_pCall->AddParameter((void*)&Value1, "in1", XSD_INT);
if (AXIS_SUCCESS == m_pCall->Invoke())
{
if(AXIS_SUCCESS == m_pCall->CheckMessage("divResponse", "http://localhost/axis/Calculator"))
{
Ret = m_pCall->GetElementAsInt("addReturn", 0);
}
}
m_pCall->UnInitialize();
return Ret;
}
1.1 ws-axis/c/samples/client/simple/Calculator.h
Index: Calculator.h
===================================================================
/*
* This is the Client Stub Class genarated by the tool WSDL2Ws
* Calculator.h: interface for the Calculatorclass.
*
*/
#if !defined(__CALCULATOR_CLIENTSTUB_H__INCLUDED_)
#define __CALCULATOR_CLIENTSTUB_H__INCLUDED_
#include <axis/client/Call.h>
class Calculator
{
private:
Call* m_pCall;
public:
Calculator(const char* pchEndpointUri);
public:
virtual ~Calculator();
public:
int add(int Value0,int Value1);
int sub(int Value0,int Value1);
int mul(int Value0,int Value1);
int div(int Value0,int Value1);
};
#endif /* !defined(__CALCULATOR_CLIENTSTUB_H__INCLUDED_)*/
1.1 ws-axis/c/samples/client/simple/Makefile.am
Index: Makefile.am
===================================================================
bin_PROGRAMS = Calculator
SUBDIRS =
AM_CPPFLAGS = $(CPPFLAGS)
adminclient_SOURCES = Calculator.cpp CalcClient.cpp
adminclient_LDADD = $(LDFLAGS) -L$(AXISCPP_HOME)/bin -laxiscpp_client -lltdl
INCLUDES = -I$(AXISCPP_HOME)/include
1.5 +1 -1 ws-axis/c/samples/server/interoptests/base/InteropTestPortType.h
Index: InteropTestPortType.h
===================================================================
RCS file: /home/cvs/ws-axis/c/samples/server/interoptests/base/InteropTestPortType.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- InteropTestPortType.h 1 Apr 2004 15:10:17 -0000 1.4
+++ InteropTestPortType.h 8 Apr 2004 13:23:52 -0000 1.5
@@ -13,7 +13,7 @@
class InteropTestPortType
{
- public:
+ public:
InteropTestPortType();
public:
virtual ~InteropTestPortType();
1.1 ws-axis/c/samples/server/simple/Calculator.cpp
Index: Calculator.cpp
===================================================================
/*
*This is the Service implementation CPP file genarated by theWSDL2Ws.
* Calculator.cpp: implemtation for the Calculator.
*
*/
#include "Calculator.h"
Calculator::Calculator()
{
}
Calculator::~Calculator()
{
}
int Calculator::add(int Value0, int Value1)
{
return Value0+Value1;
}
int Calculator::sub(int Value0, int Value1)
{
return Value0-Value1;
}
int Calculator::mul(int Value0, int Value1)
{
return Value0*Value1;
}
int Calculator::div(int Value0, int Value1)
{
if (Value1 == 0) return -1; /* :)) */
return Value0/Value1;
}
1.1 ws-axis/c/samples/server/simple/Calculator.h
Index: Calculator.h
===================================================================
/*
* This is the Service Class genarated by the tool WSDL2Ws
* Calculator.h: interface for the Calculatorclass.
*
*/
#if !defined(__CALCULATOR_SERVERSKELETON_H__INCLUDED_)
#define __CALCULATOR_SERVERSKELETON_H__INCLUDED_
#include <axis/server/AxisUserAPI.h>
class Calculator
{
public:
Calculator();
public:
virtual ~Calculator();
public:
int add(int Value0,int Value1);
int sub(int Value0,int Value1);
int mul(int Value0,int Value1);
int div(int Value0,int Value1);
};
#endif /* !defined(__CALCULATOR_SERVERSKELETON_H__INCLUDED_)*/
1.1 ws-axis/c/samples/server/simple/Calculator.wsdl
Index: Calculator.wsdl
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost/axis/Calculator"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:apachesoap="http://xml.apache.org/xml-soap"
xmlns:impl="http://localhost/axis/Calculator"
xmlns:intf="http://localhost/axis/Calculator"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:message name="addRequest">
<wsdl:part name="in0" type="xsd:int"/>
<wsdl:part name="in1" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="addResponse">
<wsdl:part name="addReturn" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="subResponse">
<wsdl:part name="subReturn" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="subRequest">
<wsdl:part name="in0" type="xsd:int"/>
<wsdl:part name="in1" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="mulRequest">
<wsdl:part name="in0" type="xsd:int"/>
<wsdl:part name="in1" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="mulResponse">
<wsdl:part name="addReturn" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="divRequest">
<wsdl:part name="in0" type="xsd:int"/>
<wsdl:part name="in1" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="divResponse">
<wsdl:part name="addReturn" type="xsd:int"/>
</wsdl:message>
<wsdl:portType name="Calculator">
<wsdl:operation name="add" parameterOrder="in0 in1">
<wsdl:input message="intf:addRequest" name="addRequest"/>
<wsdl:output message="intf:addResponse" name="addResponse"/>
</wsdl:operation>
<wsdl:operation name="sub" parameterOrder="in0 in1">
<wsdl:input message="intf:subRequest" name="subRequest"/>
<wsdl:output message="intf:subResponse" name="subResponse"/>
</wsdl:operation>
<wsdl:operation name="mul" parameterOrder="in0 in1">
<wsdl:input message="intf:mulRequest" name="mulRequest"/>
<wsdl:output message="intf:mulResponse" name="mulResponse"/>
</wsdl:operation>
<wsdl:operation name="div" parameterOrder="in0 in1">
<wsdl:input message="intf:divRequest" name="divRequest"/>
<wsdl:output message="intf:divResponse" name="divResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CalculatorSoapBinding" type="intf:Calculator">
<wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<wsdlsoap:operation soapAction="Calculator#add"/>
<wsdl:input name="addRequest">
<wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:input>
<wsdl:output name="addResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="sub">
<wsdlsoap:operation soapAction="Calculator#sub"/>
<wsdl:input name="subRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:input>
<wsdl:output name="subResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="mul">
<wsdlsoap:operation soapAction="Calculator#mul"/>
<wsdl:input name="mulRequest">
<wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:input>
<wsdl:output name="mulResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="div">
<wsdlsoap:operation soapAction="Calculator#div"/>
<wsdl:input name="divRequest">
<wsdlsoap:body
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:input>
<wsdl:output name="divResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
namespace="http://localhost/axis/Calculator"
use="encoded"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Calculator">
<wsdl:port binding="intf:CalculatorSoapBinding" name="Calculator">
<wsdlsoap:address location="http://localhost/axis/Calculator"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
1.1 ws-axis/c/samples/server/simple/CalculatorService.cpp
Index: CalculatorService.cpp
===================================================================
/*This file is automatically generated by the Axis C++ Wrapper Class Generator
*Service file containing the two export functions of the Web service Library*/
#ifdef WIN32
#define STORAGE_CLASS_INFO __declspec(dllexport)
#else
#define STORAGE_CLASS_INFO
#endif
#include "CalculatorWrapper.h"
extern "C" {
STORAGE_CLASS_INFO
int GetClassInstance(BasicHandler **inst)
{
*inst = new BasicHandler();
WrapperClassHandler* pWCH = new CalculatorWrapper();
(*inst)->_functions = 0;
if (pWCH)
{
(*inst)->_object = pWCH;
return pWCH->Init();
}
return AXIS_FAIL;
}
STORAGE_CLASS_INFO
int DestroyInstance(BasicHandler *inst)
{
if (inst)
{
WrapperClassHandler* pWCH = reinterpret_cast<WrapperClassHandler*>(inst);
pWCH->Fini();
delete pWCH;
delete inst;
return AXIS_SUCCESS;
}
return AXIS_FAIL;
}
}
1.1 ws-axis/c/samples/server/simple/CalculatorWrapper.cpp
Index: CalculatorWrapper.cpp
===================================================================
/*
* This is the Service implementation CPP file genarated by theWSDL2Ws.
* CalculatorWrapper.cpp: implemtation for the CalculatorWrapper.
*
*/
#include "CalculatorWrapper.h"
CalculatorWrapper::CalculatorWrapper()
{
pWs = new Calculator();
}
CalculatorWrapper::~CalculatorWrapper()
{
delete pWs;
}
/*implementation of WrapperClassHandler interface*/
void CalculatorWrapper::OnFault(void *pMsg)
{
}
int CalculatorWrapper::Init()
{
return AXIS_SUCCESS;
}
int CalculatorWrapper::Fini()
{
return AXIS_SUCCESS;
}
/*
* This method invokes the right service method
*/
int CalculatorWrapper::Invoke(void *pMsg)
{
IMessageData* mc = (IMessageData*)pMsg;
const AxisChar *method = mc->GetOperationName();
if (0 == strcmp(method, "add"))
return add(mc);
else if (0 == strcmp(method, "sub"))
return sub(mc);
else if (0 == strcmp(method, "mul"))
return mul(mc);
else if (0 == strcmp(method, "div"))
return div(mc);
else return AXIS_FAIL;
}
/*Methods corresponding to the web service methods*/
/*
* This method wrap the service method
*/
int CalculatorWrapper::add(void* pMsg)
{
IMessageData* mc = (IMessageData*)pMsg;
int nStatus;
IWrapperSoapSerializer *pIWSSZ = NULL;
mc->GetSoapSerializer(&pIWSSZ);
if (!pIWSSZ) return AXIS_FAIL;
IWrapperSoapDeSerializer *pIWSDZ = NULL;
mc->GetSoapDeSerializer(&pIWSDZ);
if (!pIWSDZ) return AXIS_FAIL;
/* check whether we have got correct message */
if (AXIS_SUCCESS != pIWSDZ->CheckMessageBody("add", "http://localhost/axis/Calculator")) return AXIS_FAIL;
pIWSSZ->CreateSoapMethod("addResponse", "http://localhost/axis/Calculator");
int v0 = pIWSDZ->GetElementAsInt("in0",0);
int v1 = pIWSDZ->GetElementAsInt("in1",0);
if (AXIS_SUCCESS != (nStatus = pIWSDZ->GetStatus())) return nStatus;
int ret = pWs->add(v0,v1);
return pIWSSZ->AddOutputParam("addReturn", (void*)&ret, XSD_INT);
}
/*
* This method wrap the service method
*/
int CalculatorWrapper::sub(void* pMsg)
{
IMessageData* mc = (IMessageData*)pMsg;
int nStatus;
IWrapperSoapSerializer *pIWSSZ = NULL;
mc->GetSoapSerializer(&pIWSSZ);
if (!pIWSSZ) return AXIS_FAIL;
IWrapperSoapDeSerializer *pIWSDZ = NULL;
mc->GetSoapDeSerializer(&pIWSDZ);
if (!pIWSDZ) return AXIS_FAIL;
/* check whether we have got correct message */
if (AXIS_SUCCESS != pIWSDZ->CheckMessageBody("sub", "http://localhost/axis/Calculator")) return AXIS_FAIL;
pIWSSZ->CreateSoapMethod("subResponse", "http://localhost/axis/Calculator");
int v0 = pIWSDZ->GetElementAsInt("in0",0);
int v1 = pIWSDZ->GetElementAsInt("in1",0);
if (AXIS_SUCCESS != (nStatus = pIWSDZ->GetStatus())) return nStatus;
int ret = pWs->sub(v0,v1);
return pIWSSZ->AddOutputParam("subReturn", (void*)&ret, XSD_INT);
}
/*
* This method wrap the service method
*/
int CalculatorWrapper::mul(void* pMsg)
{
IMessageData* mc = (IMessageData*)pMsg;
int nStatus;
IWrapperSoapSerializer *pIWSSZ = NULL;
mc->GetSoapSerializer(&pIWSSZ);
if (!pIWSSZ) return AXIS_FAIL;
IWrapperSoapDeSerializer *pIWSDZ = NULL;
mc->GetSoapDeSerializer(&pIWSDZ);
if (!pIWSDZ) return AXIS_FAIL;
/* check whether we have got correct message */
if (AXIS_SUCCESS != pIWSDZ->CheckMessageBody("mul", "http://localhost/axis/Calculator")) return AXIS_FAIL;
pIWSSZ->CreateSoapMethod("mulResponse", "http://localhost/axis/Calculator");
int v0 = pIWSDZ->GetElementAsInt("in0",0);
int v1 = pIWSDZ->GetElementAsInt("in1",0);
if (AXIS_SUCCESS != (nStatus = pIWSDZ->GetStatus())) return nStatus;
int ret = pWs->mul(v0,v1);
return pIWSSZ->AddOutputParam("mulReturn", (void*)&ret, XSD_INT);
}
/*
* This method wrap the service method
*/
int CalculatorWrapper::div(void* pMsg)
{
IMessageData* mc = (IMessageData*)pMsg;
int nStatus;
IWrapperSoapSerializer *pIWSSZ = NULL;
mc->GetSoapSerializer(&pIWSSZ);
if (!pIWSSZ) return AXIS_FAIL;
IWrapperSoapDeSerializer *pIWSDZ = NULL;
mc->GetSoapDeSerializer(&pIWSDZ);
if (!pIWSDZ) return AXIS_FAIL;
/* check whether we have got correct message */
if (AXIS_SUCCESS != pIWSDZ->CheckMessageBody("div", "http://localhost/axis/Calculator")) return AXIS_FAIL;
pIWSSZ->CreateSoapMethod("divResponse", "http://localhost/axis/Calculator");
int v0 = pIWSDZ->GetElementAsInt("in0",0);
int v1 = pIWSDZ->GetElementAsInt("in1",0);
if (AXIS_SUCCESS != (nStatus = pIWSDZ->GetStatus())) return nStatus;
int ret = pWs->div(v0,v1);
return pIWSSZ->AddOutputParam("divReturn", (void*)&ret, XSD_INT);
}
1.1 ws-axis/c/samples/server/simple/CalculatorWrapper.h
Index: CalculatorWrapper.h
===================================================================
/*
* This is the Service Class genarated by the tool WSDL2Ws
* CalculatorWrapper.h: interface for the CalculatorWrapperclass.
*
*/
#if !defined(__CALCULATORWRAPPER_SERVERWRAPPER_H__INCLUDED_)
#define __CALCULATORWRAPPER_SERVERWRAPPER_H__INCLUDED_
#include "Calculator.h"
#include <axis/server/WrapperClassHandler.h>
#include <axis/server/IMessageData.h>
#include <axis/server/GDefine.h>
#include <axis/server/AxisWrapperAPI.h>
class CalculatorWrapper : public WrapperClassHandler
{
private:/* Actual web service object*/
Calculator *pWs;
public:
CalculatorWrapper();
public:
virtual ~CalculatorWrapper();
public:/*implementation of WrapperClassHandler interface*/
int AXISCALL Invoke(void* pMsg);
void AXISCALL OnFault(void* pMsg);
int AXISCALL Init();
int AXISCALL Fini();
AXIS_BINDING_STYLE AXISCALL GetBindingStyle(){return RPC_ENCODED;};
private:/*Methods corresponding to the web service methods*/
int add(void* pMsg);
int sub(void* pMsg);
int mul(void* pMsg);
int div(void* pMsg);
};
#endif /* !defined(__CALCULATORWRAPPER_SERVERWRAPPER_H__INCLUDED_)*/
1.1 ws-axis/c/samples/server/simple/Makefile.am
Index: Makefile.am
===================================================================
lib_LTLIBRARIES = libCalculator.la
SUBDIRS =
libAdminService_la_SOURCES = Calculator.cpp CalculatorWrapper.cpp CalculatorService.cpp
libAdminService_la_LIBADD = $(LDFLAGS)
INCLUDES = -I$(AXISCPP_HOME)/include
1.1 ws-axis/c/samples/server/simple/deploy.wsdd
Index: deploy.wsdd
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP">
<service name="Calculator" provider="CPP:RPC" description="Simple Calculator Axis C++ web service">
<parameter name="className" value="/user/local/apache/axis/CalculatorService.so"/>
<parameter name="allowedMethods" value="add sub mul div "/>
</service>
</deployment>
1.1 ws-axis/c/samples/server/simple/undeploy.wsdd
Index: undeploy.wsdd
===================================================================
<?xml version="1.0" encoding="UTF-8"?>
<undeployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:CPP="http://xml.apache.org/axis/wsdd/providers/CPP">
<service name="Calculator"/>
</undeployment>