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