I'm developing a web app for AppM and I want to do some user management
tasks.

- retrieving all users for a given role
- retrieving claims of a given user

To accomplish above tasks, I want to call getUserListOfRole() method &
getUserClaimValues() method in the org.wso2.carbon.user.api.UserStoreManager
OSGi service. I wrote my Jaggery code as following based on [1] & [2].

routeManager.register('GET', 'publisher',
'/publisher/api/provisioning/users/{role}', function (context) {
     log.info("### in API call");
var role = context.params.role;
var carbon = require('carbon');
var userService =
carbon.server.osgiService('org.wso2.carbon.user.api.UserStoreManager');
log.info("### acquired OSGi service");
*#30* var usrs = userService.getUserListOfRole(role);

print(usrs);
});

Above code gives me a NullPointerException.

[2015-04-21 10:40:02,575]  INFO - provisioning_api_router:jag ### in API
call
[2015-04-21 10:40:02,579]  INFO - provisioning_api_router:jag ### acquired
OSGi service
[2015-04-21 10:40:02,583] ERROR - WebAppManager
org.mozilla.javascript.WrappedException: Wrapped
java.lang.NullPointerException
(/publisher/apis/v1/provisioning_api_router.jag#30)
org.jaggeryjs.scriptengine.exceptions.ScriptException:
org.mozilla.javascript.WrappedException: Wrapped
java.lang.NullPointerException
(/publisher/apis/v1/provisioning_api_router.jag#30)
        at
org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:571)
        at
org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)
        at
org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:536)
        at
org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:378)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
        at
org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
        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:501)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
        at
org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        at
org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
        at
org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
        at
org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at
org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
        at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:662)
Caused by: org.mozilla.javascript.WrappedException: Wrapped
java.lang.NullPointerException
(/publisher/apis/v1/provisioning_api_router.jag#30)
        at
org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148)
        at
org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
        at
org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1._c_anonymous_3(/publisher/apis/v1/provisioning_api_router.jag:30)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
        at
org.jaggeryjs.rhino.publisher.modules.c4._c_anonymous_12(/publisher/modules/router-g.js:183)
        at
org.jaggeryjs.rhino.publisher.modules.c4.call(/publisher/modules/router-g.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1._c_anonymous_1(/publisher/apis/v1/provisioning_api_router.jag:45)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
        at
org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
        at
org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
        at
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at
org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_17(/publisher/modules/publisher.js:438)
        at
org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
        at
org.mozilla.javascript.gen._store__server_js_18._c_anonymous_17([store]/server.js:271)
        at
org.mozilla.javascript.gen._store__server_js_18.call([store]/server.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at
org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_16(/publisher/modules/publisher.js:433)
        at
org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1._c_script_0(/publisher/apis/v1/provisioning_api_router.jag:4)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
        at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.exec(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)
        ... 37 more
Caused by: java.lang.NullPointerException
        at
org.wso2.carbon.user.core.util.UserCoreUtil.getDomainName(UserCoreUtil.java:487)
        at
org.wso2.carbon.user.core.common.AbstractUserStoreManager.getUserStore(AbstractUserStoreManager.java:2385)
        at
org.wso2.carbon.user.core.common.AbstractUserStoreManager.isExistingRole(AbstractUserStoreManager.java:1574)
        at
org.wso2.carbon.user.core.common.AbstractUserStoreManager.getUserListOfRole(AbstractUserStoreManager.java:2018)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
        ... 67 more

Even calling a method with no parameters, such as getRoleNames() gives
a NullPointerException.

routeManager.register('GET', 'publisher',
'/publisher/api/provisioning/users/{role}', function (context) {
     log.info("### in API call");
var role = context.params.role;
var carbon = require('carbon');
var userService =
carbon.server.osgiService('org.wso2.carbon.user.api.UserStoreManager');
log.info("### acquired OSGi service");
#30 var usrs = userService.getRoleNames();

print(usrs);
});

[2015-04-21 10:45:24,083]  INFO - provisioning_api_router:jag ### in API
call
[2015-04-21 10:45:24,084]  INFO - provisioning_api_router:jag ### acquired
OSGi service
[2015-04-21 10:45:24,085] ERROR - WebAppManager
org.mozilla.javascript.WrappedException: Wrapped
java.lang.NullPointerException
(/publisher/apis/v1/provisioning_api_router.jag#30)
org.jaggeryjs.scriptengine.exceptions.ScriptException:
org.mozilla.javascript.WrappedException: Wrapped
java.lang.NullPointerException
(/publisher/apis/v1/provisioning_api_router.jag#30)
        at
org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:571)
        at
org.jaggeryjs.scriptengine.engine.RhinoEngine.exec(RhinoEngine.java:273)
        at
org.jaggeryjs.jaggery.core.manager.WebAppManager.execute(WebAppManager.java:536)
        at
org.jaggeryjs.jaggery.core.JaggeryServlet.doGet(JaggeryServlet.java:24)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
        at
org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
        at
org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:378)
        at
org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
        at
org.jaggeryjs.jaggery.core.JaggeryFilter.doFilter(JaggeryFilter.java:21)
        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:501)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
        at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.continueInvocation(CompositeValve.java:178)
        at
org.wso2.carbon.tomcat.ext.valves.CarbonTomcatValve$1.invoke(CarbonTomcatValve.java:47)
        at
org.wso2.carbon.webapp.mgt.TenantLazyLoaderValve.invoke(TenantLazyLoaderValve.java:56)
        at
org.wso2.carbon.tomcat.ext.valves.TomcatValveContainer.invokeValves(TomcatValveContainer.java:47)
        at
org.wso2.carbon.tomcat.ext.valves.CompositeValve.invoke(CompositeValve.java:141)
        at
org.wso2.carbon.tomcat.ext.valves.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:156)
        at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at
org.wso2.carbon.tomcat.ext.valves.CarbonContextCreatorValve.invoke(CarbonContextCreatorValve.java:52)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1070)
        at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
        at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)
        at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1695)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
        at java.lang.Thread.run(Thread.java:662)
Caused by: org.mozilla.javascript.WrappedException: Wrapped
java.lang.NullPointerException
(/publisher/apis/v1/provisioning_api_router.jag#30)
        at
org.mozilla.javascript.Context.throwAsScriptRuntimeEx(Context.java:1754)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:148)
        at
org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
        at
org.mozilla.javascript.optimizer.OptRuntime.callProp0(OptRuntime.java:85)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1._c_anonymous_3(/publisher/apis/v1/provisioning_api_router.jag:30)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
        at
org.jaggeryjs.rhino.publisher.modules.c4._c_anonymous_12(/publisher/modules/router-g.js:183)
        at
org.jaggeryjs.rhino.publisher.modules.c4.call(/publisher/modules/router-g.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1._c_anonymous_1(/publisher/apis/v1/provisioning_api_router.jag:45)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.mozilla.javascript.ScriptRuntime.applyOrCall(ScriptRuntime.java:2430)
        at
org.mozilla.javascript.BaseFunction.execIdCall(BaseFunction.java:269)
        at
org.mozilla.javascript.IdFunctionObject.call(IdFunctionObject.java:97)
        at
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at
org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_17(/publisher/modules/publisher.js:438)
        at
org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.call0(OptRuntime.java:23)
        at
org.mozilla.javascript.gen._store__server_js_18._c_anonymous_17([store]/server.js:271)
        at
org.mozilla.javascript.gen._store__server_js_18.call([store]/server.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
        at
org.jaggeryjs.rhino.publisher.modules.c6._c_anonymous_16(/publisher/modules/publisher.js:433)
        at
org.jaggeryjs.rhino.publisher.modules.c6.call(/publisher/modules/publisher.js)
        at
org.mozilla.javascript.optimizer.OptRuntime.callN(OptRuntime.java:52)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1._c_script_0(/publisher/apis/v1/provisioning_api_router.jag:4)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
        at
org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.call(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.jaggeryjs.rhino.publisher.apis.v_1.c1.exec(/publisher/apis/v1/provisioning_api_router.jag)
        at
org.jaggeryjs.scriptengine.engine.RhinoEngine.execScript(RhinoEngine.java:567)
        ... 37 more
Caused by: java.lang.NullPointerException
        at
org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleNames(AbstractUserStoreManager.java:2555)
        at
org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleNames(AbstractUserStoreManager.java:2489)
        at
org.wso2.carbon.user.core.common.AbstractUserStoreManager.getRoleNames(AbstractUserStoreManager.java:2482)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
        ... 67 more


Any help on this matter is greatly appreciated.

[1]
https://github.com/wso2/product-app-manager/blob/master/modules/jaggery-apps/app-publisher-web/apis/v1/lifecycle_api_router.jag#L306
<https://github.com/sajithar/product-app-manager/blob/provisioning/modules/jaggery-apps/app-publisher-web/apis/v1/lifecycle_api_router.jag#L325>
[2]
http://supunsetunga.blogspot.com/2014/12/calling-osgi-services-from-jaggery-app.html

Thanks & Regards.
-- 
Sajith Ariyarathna
Software Engineer; WSO2, Inc.;  http://wso2.com/
mobile: +94 77 6602284, +94 71 3951048
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to