|
 |
Home |
Documentation |
Code Example 3: Publishing a WSDL and service on XMethods
updated Tue Mar 24 2020 by Robert van Engelen
|
|
This example shows you how to publish a Web service. In this case, the example template code obtains an authorization token, saves the tModel with the WSDL URL in the server, and saves the business service information in the server.
#include "pubH.h"
const char *server = "https://uddi.xmethods.net/publish";
const char *userid = "...";
const char *passwd = "...";
int main(int argc, char **argv)
{
struct soap *soap = soap_new();
if (soap_ssl_client_context(soap, SOAP_SSL_DEFAULT, NULL, NULL, "cacerts.pem", NULL, NULL))
{
soap_print_fault(soap, stderr);
exit(1);
}
if (!authToken)
{
soap_print_fault(soap, stderr);
exit(1);
}
tModel.soap_default(soap);
tModel.
name = soap_new_uddi2__name(soap, -1);
description[0].
__item =
"SHORT DESCRIPTION: ...";
description[1].
__item =
"SHORT DESCRIPTION: ...";
description[2].
__item =
"USAGE NOTES: ...";
description[3].
__item =
"HOMEPAGE URL: ...";
description[4].
__item =
"CONTACT EMAIL: ...";
description[5].
__item =
"IMPLEMENTATION: ...";
tModel.
overviewDoc = soap_new_uddi2__overviewDoc(soap, -1);
tModel.
categoryBag = soap_new_uddi2__categoryBag(soap, -1);
service.soap_default(soap);
bindingTemplate.soap_default(soap);
bindingTemplate.
accessPoint = soap_new_uddi2__accessPoint(soap, -1);
soap_destroy(soap);
soap_end(soap);
soap_done(soap);
free(soap);
return 0;
}
To compile:
- wsdl2h -tuddi2-typemap.dat publish_v2.wsdl
- soapcpp2 -I.. -ppub publish_v2.h
- g++ -DWITH_OPENSSL -DWITH_NONAMESPACES -I.. -o example3 example3.cpp publish_v2.cpp pubC.cpp pubClient.cpp ../stdsoap2.cpp
Schema urn:uddi-org:api_v2:"save_service".
Definition: uddi_v2.h:2857
char * authInfo
Element reference "urn:uddi-org:api_v2":authInfo.
Definition: uddi_v2.h:2958
Schema urn:uddi-org:api_v2:"dispositionReport".
Definition: uddi_v2.h:2081
char * __item
Definition: uddi_v2.h:3151
std::vector< uddi2__description * > description
Vector of uddi2__description* with length 0..unbounded.
Definition: uddi_v2.h:2006
Schema urn:uddi-org:api_v2:"bindingTemplate".
Definition: uddi_v2.h:1901
@ uddi2__URLType__http
xs:NMTOKEN value="http"
Definition: uddi_v2.h:1847
Schema urn:uddi-org:api_v2:"discard_authToken".
Definition: uddi_v2.h:2477
uddi2__bindingKey bindingKey
Attribute bindingKey of type "urn:uddi-org:api_v2":bindingKey.
Definition: uddi_v2.h:1916
uddi2__name * name
Element reference "urn:uddi-org:api_v2":name.
Definition: uddi_v2.h:2272
Schema urn:uddi-org:api_v2:"save_tModel".
Definition: uddi_v2.h:2879
char * authorizedName
Attribute authorizedName of type xs:string.
Definition: uddi_v2.h:2286
uddi2__identifierBag * identifierBag
Element reference "urn:uddi-org:api_v2":identifierBag.
Definition: uddi_v2.h:2278
uddi2__categoryBag * categoryBag
Element reference "urn:uddi-org:api_v2":categoryBag.
Definition: uddi_v2.h:2010
std::vector< uddi2__name * > name
Vector of uddi2__name* with length 0..unbounded.
Definition: uddi_v2.h:2004
char * operator_
Attribute operator of type xs:string.
Definition: uddi_v2.h:2284
uddi2__bindingTemplates * bindingTemplates
Element reference "urn:uddi-org:api_v2":bindingTemplates.
Definition: uddi_v2.h:2008
uddi2__hostingRedirector * hostingRedirector
Element reference "urn:uddi-org:api_v2":hostingRedirector.
Definition: uddi_v2.h:1911
std::vector< uddi2__tModelInstanceInfo * > tModelInstanceInfo
Vector of uddi2__tModelInstanceInfo* with length 0..unbounded.
Definition: uddi_v2.h:2328
uddi2__tModelInstanceDetails * tModelInstanceDetails
Element reference "urn:uddi-org:api_v2":tModelInstanceDetails.
Definition: uddi_v2.h:1906
Schema urn:uddi-org:api_v2:"businessService".
Definition: uddi_v2.h:2001
uddi2__overviewDoc * overviewDoc
Element reference "urn:uddi-org:api_v2":overviewDoc.
Definition: uddi_v2.h:2276
Schema urn:uddi-org:api_v2:"get_authToken".
Definition: uddi_v2.h:2659
uddi2__serviceKey serviceKey
Attribute serviceKey of type "urn:uddi-org:api_v2":serviceKey.
Definition: uddi_v2.h:1914
uddi2__tModelKey tModelKey
Attribute tModelKey of type "urn:uddi-org:api_v2":tModelKey.
Definition: uddi_v2.h:2282
std::vector< uddi2__description * > description
Vector of uddi2__description* with length 0..unbounded.
Definition: uddi_v2.h:2170
Schema urn:uddi-org:api_v2:"authToken".
Definition: uddi_v2.h:2955
Schema urn:uddi-org:api_v2:"tModel".
Definition: uddi_v2.h:2269
std::vector< uddi2__bindingTemplate * > bindingTemplate
Vector of uddi2__bindingTemplate* with length 0..unbounded.
Definition: uddi_v2.h:1926
char * __item
Definition: uddi_v2.h:3219
uddi2__businessKey businessKey
Attribute businessKey of type "urn:uddi-org:api_v2":businessKey.
Definition: uddi_v2.h:2014
enum uddi2__URLType URLType
Attribute URLType of type "urn:uddi-org:api_v2":URLType.
Definition: uddi_v2.h:3153
Schema urn:uddi-org:api_v2:"description".
Definition: uddi_v2.h:3173
Schema urn:uddi-org:api_v2:"tModelDetail".
Definition: uddi_v2.h:3117
Schema urn:uddi-org:api_v2:"serviceDetail".
Definition: uddi_v2.h:3085
char * overviewURL
Element reference "urn:uddi-org:api_v2":overviewURL.
Definition: uddi_v2.h:2172
char * __item
Definition: uddi_v2.h:3175
std::vector< uddi2__keyedReference * > keyedReference
Vector of uddi2__keyedReference* with length 0..unbounded.
Definition: uddi_v2.h:2034
xml__lang xml__lang_
Attribute reference xml:lang.
Definition: uddi_v2.h:3221
std::vector< uddi2__description * > description
Vector of uddi2__description* with length 0..unbounded.
Definition: uddi_v2.h:2274
uddi2__categoryBag * categoryBag
Element reference "urn:uddi-org:api_v2":categoryBag.
Definition: uddi_v2.h:2280
xml__lang xml__lang_
Attribute reference xml:lang.
Definition: uddi_v2.h:3177
uddi2__serviceKey serviceKey
Attribute serviceKey of type "urn:uddi-org:api_v2":serviceKey.
Definition: uddi_v2.h:2012
uddi2__accessPoint * accessPoint
Element reference "urn:uddi-org:api_v2":accessPoint.
Definition: uddi_v2.h:1909