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 ro...@apache.org on 2003/10/11 08:14:25 UTC
cvs commit: ws-axis/c/src/client/deployment AdminClient.cpp
roshan 2003/10/10 23:14:25
Modified: c/src/client/deployment AdminClient.cpp
Log:
client code for deployment tool
Revision Changes Path
1.2 +158 -7 ws-axis/c/src/client/deployment/AdminClient.cpp
Index: AdminClient.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/client/deployment/AdminClient.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AdminClient.cpp 2 Oct 2003 10:09:08 -0000 1.1
+++ AdminClient.cpp 11 Oct 2003 06:14:25 -0000 1.2
@@ -1,19 +1,170 @@
-int main() {
+/* -*- C++ -*- */
- /*
- Admin client code comes here
- */
+/*
+ * The Apache Software License, Version 1.1
+ *
+ *
+ * Copyright (c) 2002 The Apache Software Foundation. All rights
+ * reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in
+ * the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * 3. The end-user documentation included with the redistribution,
+ * if any, must include the following acknowledgment:
+ * "This product includes software developed by the
+ * Apache Software Foundation (http://www.apache.org/)."
+ * Alternately, this acknowledgment may appear in the software itself,
+ * if and wherever such third-party acknowledgments normally appear.
+ *
+ * 4. The names "SOAP" and "Apache Software Foundation" must
+ * not be used to endorse or promote products derived from this
+ * software without prior written permission. For written
+ * permission, please contact apache@apache.org.
+ *
+ * 5. Products derived from this software may not be called "Apache",
+ * nor may "Apache" appear in their name, without prior written
+ * permission of the Apache Software Foundation.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * ====================================================================
+ *
+ * This software consists of voluntary contributions made by many
+ * individuals on behalf of the Apache Software Foundation. For more
+ * information on the Apache Software Foundation, please see
+ * <http://www.apache.org/>.
+ *
+ *
+ *
+ *
+ * @author Roshan Weerasuriya (roshan@jkcs.slt.lk, roshan@opensource.lk)
+ *
+ */
- Call* m_pCall;
+#include "../Call.h"
+#include "../../wsdd/WSDDDeployment.h"
+
+int processDeployWSDD(char* pchWSDDPath);
+
+const AxisChar* pAchServiceName;
+const AxisChar* pAchLibName;
+list<AxisString> lstAllowedMethods;
+//string* sArrAllowedMethods;
+string sArrAllowedMethods[6];
+int iAllowdMethodsArraySize=0;
+
+int main(int argc, char *argv[ ]) {
+
+ int nStatus;
+ int ret = 0;
+ char* chWSDDPath = "E:/axiscppdev/ws-axis/c/release/win32/deploy.wsdd";
+ Call* m_pCall;
m_pCall = new Call();
+
+ /*
+ *Process the client side deployment WSDD and extract the required details
+ */
+ processDeployWSDD(chWSDDPath);
+
/* The protocol can be taken from the binding section in the WSDL */
m_pCall->SetProtocol(APTHTTP);
/* The value for SOAPAction is specified in the binding section of the WSDL */
m_pCall->SetHeader("SOAPAction", "servicename");
/* End point URI too can be taken from WSDL */
- //m_pCall->SetEndpointURI("http://192.168.101.10:80/axis/Calculator");
- m_pCall->SetEndpointURI("http://192.168.101.4:5555/axis/Calculator");
+ //m_pCall->SetEndpointURI("http://192.168.101.15:9999/axis/WebserviceDeployer");
+ m_pCall->SetEndpointURI("http://127.0.0.1:9999/axis/WebserviceDeployer");
+
+ /* Following will establish the connections with the server too */
+ if (SUCCESS != m_pCall->Initialize())
+ return ret;
+ m_pCall->SetSOAPVersion(SOAP_VER_1_1);
+ /* This should be done before adding parameters or return type */
+
+ m_pCall->SetOperation("deploy", "http://www.opensource.lk/");
+
+ m_pCall->AddParameter(pAchServiceName, "ServiceName");
+ m_pCall->AddParameter(pAchLibName, "LibName");
+
+ Axis_Array* structAxis_Array= (Axis_Array*) malloc(sizeof(Axis_Array));
+ structAxis_Array->m_Array = sArrAllowedMethods;
+ structAxis_Array->m_Size = iAllowdMethodsArraySize;
+ m_pCall->AddParameter(structAxis_Array, XSD_STRING, "AllowedMethods");
+
+ m_pCall->SetReturnType(XSD_INT);
+
+
+ nStatus = m_pCall->Invoke();
+
+ if (SUCCESS == nStatus)
+ {
+ ret = m_pCall->GetResult().nValue;
+#ifdef _DEBUG
+ printf("%s%d", "Got The result", ret);
+#endif
+ }
+ /* Following will close the connection with the server too */
+ m_pCall->UnInitialize();
+
+ delete m_pCall;
+
return 0;
+}
+
+int processDeployWSDD(char* pchWSDDPath) {
+
+ /*
+ *WSDD processing code comes here
+ */
+
+ WSDDDeployment* pWSDDDeployment= new WSDDDeployment();
+ pWSDDDeployment->LoadWSDD(pchWSDDPath);
+
+ const WSDDServiceMap* pWSDDServiceMap= pWSDDDeployment->GetWSDDServiceMap();
+ const WSDDServiceMap::const_iterator itCurrService = pWSDDServiceMap->begin();
+
+ if (itCurrService != pWSDDServiceMap->end()) {
+ const WSDDService* pWSDDService = (*itCurrService).second;
+ pAchServiceName = pWSDDService->GetServiceName();
+ pAchLibName = pWSDDService->GetLibName();
+ lstAllowedMethods = pWSDDService->getAllowedMethods();
+
+ printf("pAchServiceName = %s\n", pAchServiceName);
+ printf("pAchLibName = %s\n", pAchLibName);
+
+ list<AxisString>::iterator iteAllowedMethods = lstAllowedMethods.begin();
+ int iTmpCount =0;
+ while (iteAllowedMethods != lstAllowedMethods.end()) {
+ /*DEBUG line
+ printf("sAllowedMethod = %s\n", (*iteAllowedMethods).c_str());
+ */
+ sArrAllowedMethods[iTmpCount] = (*iteAllowedMethods).c_str();
+ iTmpCount++;
+ iteAllowedMethods++;
+ }
+ iAllowdMethodsArraySize = iTmpCount;
+ }
+
+ return SUCCESS;
}