Reputation: 433
I am using APIM 3.1.0. I need to add the new tenant to the system for that I am using SOAP APIs. I am sending the request.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<ser:addTenant>
<!--Optional:-->
<ser:tenantInfoBean>
<xsd:active>true</xsd:active>
<xsd:adminFirstName>vk</xsd:adminFirstName>
<xsd:adminFullName>fname</xsd:adminFullName>
<xsd:adminLastName>k</xsd:adminLastName>
<xsd:adminName>soapadmin</xsd:adminName>
<xsd:adminPassword>11111</xsd:adminPassword>
<xsd:createdDate>2020-07-08T11:30:00+05:30</xsd:createdDate>
<xsd:domain>mydomain.com</xsd:domain>
<xsd:email>[email protected]</xsd:email>
<xsd:id>15</xsd:id>
<xsd:realmConfig></xsd:realmConfig>
</ser:tenantInfoBean>
</ser:addTenant>
</soapenv:Body>
</soapenv:Envelope>
But for this I am receiving the response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>Provided domain name is empty.</faultstring>
<detail>
<ns:TenantMgtAdminServiceException xmlns:ns="http://services.mgt.tenant.carbon.wso2.org">
<ns:TenantMgtAdminServiceException>
<axis2ns2:Message xmlns:axis2ns2="http://services.mgt.tenant.carbon.wso2.org">Provided domain name is empty.</axis2ns2:Message>
</ns:TenantMgtAdminServiceException>
</ns:TenantMgtAdminServiceException>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Why I am getting Provided domain name is empty, when I have passed the domain name correctly?
UPDATE
Now I changed the request as suggested but I am getting the Unknown error.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
<soapenv:Header/>
<soapenv:Body>
<ser:addTenant>
<!--Optional:-->
<ser:tenantInfoBean>
<!--Optional:-->
<xsd:active>true</xsd:active>
<!--Optional:-->
<xsd:admin>testadmin</xsd:admin>
<!--Optional:-->
<xsd:adminPassword>12345</xsd:adminPassword>
<!--Optional:-->
<xsd:createdDate>2020-07-08T11:30:00+05:30</xsd:createdDate>
<!--Optional:-->
<xsd:email>[email protected]</xsd:email>
<!--Optional:-->
<xsd:firstname>fname</xsd:firstname>
<!--Optional:-->
<xsd:lastname>lname</xsd:lastname>
<!--Optional:-->
<xsd:originatedService></xsd:originatedService>
<!--Optional:-->
<xsd:successKey></xsd:successKey>
<!--Optional:-->
<xsd:tenantDomain>mydomain.com</xsd:tenantDomain>
<!--Optional:-->
<xsd:tenantId>5</xsd:tenantId>
<!--Optional:-->
<xsd:usagePlan>demo</xsd:usagePlan>
</ser:tenantInfoBean>
</ser:addTenant>
</soapenv:Body>
</soapenv:Envelope>
Response
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Server</faultcode>
<faultstring>unknown</faultstring>
<detail/>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
I initially used the same request as you mentioned. But in the WSDL contract the tenant type is
<xs:element minOccurs="0" name="active" type="xs:boolean"/>
<xs:element minOccurs="0" name="adminFirstName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="adminFullName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="adminLastName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="adminName" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="adminPassword" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="createdDate" nillable="true" type="xs:date"/>
<xs:element minOccurs="0" name="domain" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="email" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="id" type="xs:int"/>
<xs:element minOccurs="0" name="realmConfig" nillable="true" type="ax2987:RealmConfiguration"/>
Upvotes: 0
Views: 126
Reputation: 3057
addTenant
request in https://localhost:9443/services/TenantMgtAdminService?wsdl
1 is as follows. Please try the below request.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://services.mgt.tenant.carbon.wso2.org" xmlns:xsd="http://beans.common.stratos.carbon.wso2.org/xsd">
<soap:Header/>
<soap:Body>
<ser:addTenant>
<!--Optional:-->
<ser:tenantInfoBean>
<!--Optional:-->
<xsd:active>?</xsd:active>
<!--Optional:-->
<xsd:admin>?</xsd:admin>
<!--Optional:-->
<xsd:adminPassword>?</xsd:adminPassword>
<!--Optional:-->
<xsd:createdDate>?</xsd:createdDate>
<!--Optional:-->
<xsd:email>?</xsd:email>
<!--Optional:-->
<xsd:firstname>?</xsd:firstname>
<!--Optional:-->
<xsd:lastname>?</xsd:lastname>
<!--Optional:-->
<xsd:originatedService>?</xsd:originatedService>
<!--Optional:-->
<xsd:successKey>?</xsd:successKey>
<!--Optional:-->
<xsd:tenantDomain>?</xsd:tenantDomain>
<!--Optional:-->
<xsd:tenantId>?</xsd:tenantId>
<!--Optional:-->
<xsd:usagePlan>?</xsd:usagePlan>
</ser:tenantInfoBean>
</ser:addTenant>
</soap:Body>
</soap:Envelope>
You are getting Provided domain name is empty.
error because your request contains <xsd:domain>mydomain.com</xsd:domain>
instead of <xsd:tenantDomain>mydomain.com</xsd:tenantDomain>
Upvotes: 2