簡體   English   中英

通過 SOAP API 添加租戶會引發錯誤

[英]Adding a tenant via SOAP API throws error

我正在使用 APIM 3.1.0。 我需要將新租戶添加到系統中,因為我正在使用 SOAP API。 我正在發送請求。

<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>

但為此我收到了回復

<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>

當我正確傳遞域名時,為什么我得到提供的域名為空?

更新

現在我按照建議更改了請求,但我收到了未知錯誤。

<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>

回復

<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>

我最初使用了與您提到的相同的請求。 但是在 WSDL 合同中,租戶類型是

<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 https://localhost:9443/services/TenantMgtAdminService?wsdl 1中的 addTenant 請求如下。 請嘗試以下請求。

<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>

你得到Provided domain name is empty. 錯誤,因為您的請求包含<xsd:domain>mydomain.com</xsd:domain>而不是<xsd:tenantDomain>mydomain.com</xsd:tenantDomain>

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM