简体   繁体   中英

Adding a tenant via SOAP API throws error

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>vk@abc.com</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>vk@abc.com</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"/>

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>

[1] https://is.docs.wso2.com/en/latest/administer/adding-new-tenants/#managing-tenants-using-admin-services

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM