以编程方式在 WSO2 中添加租户

Adding Tenant in WSO2 programmatically

我正在尝试使用 java(即不使用 API 管理器控制台)以编程方式在 WSO2 中添加租户。我尝试在管理服务中使用 "RemoteTenantManagerService",但出现错误:

org.apache.axis2.AxisFault: org.wso2.carbon.user.core.UserStoreException: Error in adding tenant with tenant domain: test.com

我启用了调试日志并发现:

{org.wso2.carbon.user.core.tenant.TenantManager} - Error in adding tenant with tenant domain: test.com. {org.wso2.carbon.user.core.tenant.TenantManager} java.lang.NullPointerException at org.wso2.carbon.user.core.config.RealmConfigXMLProcessor.serialize(RealmConfigXMLProcessor.java:72) at org.wso2.carbon.user.core.tenant.JDBCTenantManager.addTenant(JDBCTenantManager.java:109) at org.wso2.carbon.um.ws.service.TenantManagerService.addTenant(TenantManagerService.java:41)

有什么建议吗?

请尝试使用 https://localhost:9443/services/TenantMgtService?wsdl 作为 WSDL

注意:在使用管理服务之前,您需要设置

<HideAdminServiceWSDLs>false</HideAdminServiceWSDLs> in carbon.xml

(文件位于:/repository/conf/carbon.xml

下面给出了我的示例肥皂信封,

<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:registerTenantForTrustedUser>
     <ser:tenantInfoBean>
        <xsd:active>true</xsd:active>
        <xsd:admin>admin</xsd:admin>
        <xsd:adminPassword>admin</xsd:adminPassword>
        <xsd:email>channa@abc.com</xsd:email>
        <xsd:firstname>Channa</xsd:firstname>
        <xsd:lastname>E</xsd:lastname>
        <xsd:tenantDomain>abc.test.com</xsd:tenantDomain>
        <xsd:tenantId>-1</xsd:tenantId>
     </ser:tenantInfoBean>
  </ser:registerTenantForTrustedUser>
</soap:Body>
</soap:Envelope> 

通过以上我能够成功创建租户

我能够在以编程方式添加租户时使用服务 "TenantMgtAdminService" 解决问题。租户详细信息可以在 "TenantInfoBean" 中设置并添加为 - TenantMgtAdminServiceStub.addTenant(TenantInfoBean).

进口是: org.wso2.carbon.tenant.mgt.stub.TenantMgtAdminServiceStub 和 org.wso2.carbon.tenant.mgt.stub.beans.xsd.TenantInfoBean.

干杯!! :)