#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);
}
uddi2__get_USCOREauthToken get_authToken(soap, userid, passwd);
uddi2__authToken *authToken = get_authToken.send(server);
if (!authToken)
{
soap_print_fault(soap, stderr);
exit(1);
}
char *authInfo = authToken->authInfo;
uddi2__tModel tModel;
tModel.soap_default(soap);
tModel.name = soap_new_uddi2__name(soap, -1);
tModel.name->__item = "...";
tModel.name->xml__lang_ = "en";
uddi2__description *description = soap_new_uddi2__description(soap, 6);
description[0].__item = "SHORT DESCRIPTION: ...";
description[0].xml__lang_ = "en";
description[1].__item = "SHORT DESCRIPTION: ...";
description[1].xml__lang_ = "en";
description[2].__item = "USAGE NOTES: ...";
description[2].xml__lang_ = "en";
description[3].__item = "HOMEPAGE URL: ...";
description[3].xml__lang_ = "en";
description[4].__item = "CONTACT EMAIL: ...";
description[4].xml__lang_ = "en";
description[5].__item = "IMPLEMENTATION: ...";
description[5].xml__lang_ = "en";
tModel.description.push_back(description + 0);
tModel.description.push_back(description + 1);
tModel.description.push_back(description + 2);
tModel.description.push_back(description + 4);
tModel.overviewDoc = soap_new_uddi2__overviewDoc(soap, -1);
tModel.overviewDoc->soap_default(soap);
tModel.overviewDoc->description.push_back(soap_new_uddi2__description(soap, -1));
tModel.overviewDoc->description[0]->__item = "WSDL source document";
tModel.overviewDoc->description[0]->xml__lang_ = "en";
tModel.overviewDoc->overviewURL = "http://.../my.wsdl#bindingName";
tModel.identifierBag = NULL;
tModel.categoryBag = soap_new_uddi2__categoryBag(soap, -1);
tModel.categoryBag->soap_default(soap);
tModel.categoryBag->keyedReference.push_back(soap_new_uddi2__keyedReference(soap, -1));
tModel.categoryBag->keyedReference[0]->tModelKey = "...";
tModel.categoryBag->keyedReference[0]->keyName = "uddi-org:types";
tModel.categoryBag->keyedReference[0]->keyValue = "wsdlSpec";
tModel.authorizedName = "...";
tModel.operator_ = "...";
tModel.tModelKey = "...";
uddi2__save_USCOREtModel save_tModel(soap, tModel);
uddi2__tModelDetail *tModelDetail = save_tModel.send(server, authInfo);
uddi2__businessService service;
service.soap_default(soap);
service.name.push_back(tModel.name);
service.description.push_back(description + 4);
service.description.push_back(description + 5);
uddi2__bindingTemplate bindingTemplate;
bindingTemplate.soap_default(soap);
bindingTemplate.tModelInstanceDetails = soap_new_uddi2__tModelInstanceDetails(soap, -1);
bindingTemplate.tModelInstanceDetails->tModelInstanceInfo.push_back(soap_new_uddi2__tModelInstanceInfo(soap, -1));
bindingTemplate.tModelInstanceDetails->tModelInstanceInfo[0]->instanceDetails = NULL;
bindingTemplate.tModelInstanceDetails->tModelInstanceInfo[0]->tModelKey = tModel.tModelKey;
bindingTemplate.accessPoint = soap_new_uddi2__accessPoint(soap, -1);
bindingTemplate.accessPoint->__item = "...";
bindingTemplate.accessPoint->URLType = uddi2__URLType__http;
bindingTemplate.hostingRedirector = NULL;
bindingTemplate.serviceKey = "...";
bindingTemplate.bindingKey = "...";
service.bindingTemplates = soap_new_uddi2__bindingTemplates(soap, -1);
service.bindingTemplates->soap_default(soap);
service.bindingTemplates->bindingTemplate.push_back(&bindingTemplate);
service.categoryBag = NULL;
service.serviceKey = "...";
service.businessKey = "...";
uddi2__save_USCOREservice save_service(soap, service);
uddi2__serviceDetail *serviceDetail = save_service.send(server, authInfo);
uddi2__discard_USCOREauthToken discard_authToken(soap, authInfo);
uddi2__dispositionReport *dispositionReport = discard_authToken.send(server);
soap_destroy(soap);
soap_end(soap);
soap_done(soap);
free(soap);
return 0;
}
To compile: