Thanks to Omindu. After adding the 3 attributes below, the addition works now.


But the current addTenant working flow doesn't seem reasonable. And I have the 
following concerns:

when I am creating the Tenant, we don't have the firstname/lastname and 
password, we would like to ask the User to enter only the "email" with valid 
"domain" to create the tenant

we will default the email to be an administrator, and then send an invitation 
to the user email

only after user activates the link, we will get the username/lastname and 
password; otherwise the tenant will be kept inactive

the "addTenant" didn't respect the Active status in the TenantInfoBean, and it 
will be in Active after creation. It's a problem to me.
Regards, Wenxing





------------------ Original ------------------
From:  "Omindu Rathnaweera";<omi...@wso2.com>;
Send time: Thursday, Sep 22, 2016 10:38 PM
To: "wenxzhen"<wenxing.zh...@qq.com>; 
Cc: "dev"<dev@wso2.org>; 
Subject:  Re: [Dev] Exception when creating a tenant with TenantMgtAdminService



Hi Wenxing,

Additionally, can you try setting the following parameters as well,


- adminPassword

- firstname

- lastname



Regards,
Omindu






On Thu, Sep 22, 2016 at 5:46 PM, wenxzhen <wenxing.zh...@qq.com> wrote:
paste the codes to do the addTenant for reference:
String cookie = WSO2AuthenticationAdmin.getCookie();
TenantMgtAdminServiceStub tenantMgtStub = null;

tenantMgtStub = new 
TenantMgtAdminServiceStub(CommonConfig.TENANT_ADMIN_ENDPOINT);
Options option = tenantMgtStub._getServiceClient().getOptions();
option.setManageSession(true);
option.setProperty(org.apache.axis2.transport.http.HTTPConstants.COOKIE_STRING, 
cookie);

String value = tenantMgtStub.addTenant(getTenantBeanInfo(tenantBean));


------------------ Original ------------------
From:  "wenxzhen";<wenxing.zh...@qq.com>;
Date:  Sep 22, 2016
To:  "dev"<dev@wso2.org>; 

Subject:  [Dev] Exception when creating a tenant with TenantMgtAdminService



Dear all,


On AS 5.3.0, I am using the TenantMgtAdminService to create the tenant with 
only the following attributes:
TenantInfoBean infoBean = new TenantInfoBean();

infoBean.setTenantDomain(...);
infoBean.setActive(...);
infoBean.setEmail(...);
infoBean.setUsagePlan(...);
infoBean.setAdmin(...);
And then I got the exception below, from the words "Error occurred while adding 
user property for user : m...@sina.com & property name : sn & value : null", it 
seemed I am missing some mandatory parameters?


TID: [-1234] [] [2016-09-22 19:44:08,431]  INFO 
{org.das.server.users.wso2admin.WSO2AuthenticationAdmin} -  getCookie with 
JSESSIONID=6BDFFED6992C09224D1EB74F2A430AAE; Path=/; Secure=null; HttpOnly=null 
{org.das.server.users.wso2admin.WSO2AuthenticationAdmin}
TID: [4] [] [2016-09-22 19:44:09,533] @so.net [4] [AS]ERROR 
{org.wso2.carbon.tenant.mgt.util.TenantMgtUtil} -  Error in adding claims to 
the user. {org.wso2.carbon.tenant.mgt.util.TenantMgtUtil}
org.wso2.carbon.user.core.UserStoreException: Error occurred while getting 
claim attribute for user : m...@sina.com
        at 
org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.doSetUserClaimValues(JDBCUserStoreManager.java:1989)
        at 
org.wso2.carbon.user.core.common.AbstractUserStoreManager.setUserClaimValues(AbstractUserStoreManager.java:988)
        at 
org.wso2.carbon.tenant.mgt.util.TenantMgtUtil.addClaimsToUserStoreManager(TenantMgtUtil.java:348)
        at 
org.wso2.carbon.tenant.mgt.services.TenantMgtAdminService.addTenant(TenantMgtAdminService.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at 
org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:212)
        at 
org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:117)
        at 
org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
        at 
org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:110)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180)
        at 
org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:173)
        at 
org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:146)
        at 
org.wso2.carbon.core.transports.CarbonServlet.doPost(CarbonServlet.java:231)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at 
org.eclipse.equinox.http.servlet.internal.ServletRegistration.service(ServletRegistration.java:61)
        at 
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:128)
        at 
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:68)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at 
org.wso2.carbon.tomcat.ext.servlet.DelegationServlet.service(DelegationServlet.java:68)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.wso2.carbon.tomcat.ext.filter.CharacterSetFilter.doFilter(CharacterSetFilter.java:61)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at 
org.wso2.carbon.statistics.webapp.RequestIntercepterValve.invoke(RequestIntercepterValve.java:47)
        at 
org.wso2.carbon.bam.webapp.stat.publisher.WebAppStatisticPublisherValve.invoke(WebAppStatisticPublisherValve.java:104)
        at 
org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:99)
        at 
org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        at 
org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:57)
        at 
org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        at 
org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:62)
        at 
org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:159)
        at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at 
org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:57)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
        at 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
        at 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1739)
        at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1698)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:745)
Caused by: org.wso2.carbon.user.core.UserStoreException: Error occurred while 
adding user property for user : m...@sina.com & property name : sn & value : 
null
        at 
org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.addProperty(JDBCUserStoreManager.java:2273)
        at 
org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.doSetUserClaimValues(JDBCUserStoreManager.java:1972)
        ... 55 more
Caused by: org.wso2.carbon.user.core.UserStoreException: Invalid data provided
        at 
org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.updateStringValuesToDatabase(JDBCUserStoreManager.java:2194)
        at 
org.wso2.carbon.user.core.jdbc.JDBCUserStoreManager.addProperty(JDBCUserStoreManager.java:2261)
        ... 56 more
TID: [-1234] [] [2016-09-22 19:44:09,545]  WARN 
{org.das.server.users.TenantServiceImpl} -  addTenant failed with Error: 
TenantMgtAdminServiceExceptionException, Cause: null 
{org.das.server.users.TenantServiceImpl}



Please help to advice
Thanks, Wenxing




_______________________________________________
 Dev mailing list
 Dev@wso2.org
 http://wso2.org/cgi-bin/mailman/listinfo/dev
 





-- 
Omindu RathnaweeraSoftware Engineer, WSO2 Inc.
Mobile: +94 771 197 211
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to