0

We have configured WSO2 EMM 2.0.1

Android enrollment working fine - we can register new device.

During registration iOS device (look picture) we got NPE exception then entering correct username/password.

enter image description here

Caused by: java.lang.NullPointerException
at org.wso2.carbon.device.mgt.ios.EnrollmentService.authenticate(EnrollmentService.java:144)

Problem is - EnrollmentService - is a part of ios-enrollment.war file (provided during Obtaining the signed CSR file) - so, I do not have sources to understand what exactly produced NPE.

Does anybody know what this exception mean and how to fix it?

Here is full stack-trace of error:

TID: [-1234] [] [2016-09-07 22:03:21,280] ERROR {org.apache.catalina.core.StandardWrapperValve} - Servlet.service() for servlet [JAXServlet] in context with path [/ios-enrollment] threw exception java.lang.RuntimeException: org.apache.cxf.interceptor.Fault at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:116) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:336) at org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121) at org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249) at org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:248) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:222) at org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:153) at org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:171) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209) at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) at org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:265) 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.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.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.webapp.authenticator.framework.WebappAuthenticationValve.invoke(WebappAuthenticationValve.java:43) 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.apache.cxf.interceptor.Fault at org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:170) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:136) at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:204) at org.apache.cxf.jaxrs.JAXRSInvoker.invoke(JAXRSInvoker.java:101) at org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58) at org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:94) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) ... 39 more Caused by: java.lang.NullPointerException at org.wso2.carbon.device.mgt.ios.EnrollmentService.authenticate(EnrollmentService.java:144) 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.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:188) at org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:104)

Community
  • 1
  • 1

1 Answers1

0

If you follow this documentation[1], you will see what are the steps you need to do so as to get a iOS device registered with WSO2 EMM.Initially, you need to submit the CSR file to WSO2 via their site[2] in order to obtain the signed CSR file in .plist format.Then one of WSO2 Account Managers will evaluate the CSR file you submit. Once the evaluation process is complete you will receive an email with the following:

  • The signed CSR file in the .plst format.
  • Agent source code.
  • P2 repository, which contains the feature list.

This is the process must be done in order to get registered a iOS device with WSO2 EMM.

1.https://docs.wso2.com/display/EMM201/iOS+Configurations. 2.http://wso2.com/products/enterprise-mobility-manager/csr/

GPrathap
  • 7,336
  • 7
  • 65
  • 83
  • Thanks for answer - all these steps are already done. problem is - after all these configuration I'm getting error during iOS device enrollment I've got NPE exception and since iOS part of EMM is closed-source - cannot get any information why it happens. – Alexey Kakunin Sep 24 '16 at 13:07
  • If you signed CSR from WSO2.. then you will be given features for server-side as well as iOS client where you can debug it. That is what this doc says(http://wso2.com/products/enterprise-mobility-manager/csr/). – GPrathap Sep 24 '16 at 14:56
  • Hi! No, I cannot debug it, since ios.war and ios-entitlement.war applications, received in p2 repositories during CSR process come without sources - and it is main problem. – Alexey Kakunin Sep 26 '16 at 11:35
  • Really sorry, I was misunderstanding about this. What did you use for the domain name. You need to give "carbon.super" as the domain name and admin/admin if you don't have created any users there. – GPrathap Sep 26 '16 at 16:53
  • Hi! Thank you very much for suggestion about "carbon.super" - we will try and I will let you know did it helped – Alexey Kakunin Sep 27 '16 at 22:22
  • Tested - no luck - even tenant is specified (carbon.super) - I've got same NPE at EnrollmentService.java:144 – Alexey Kakunin Oct 03 '16 at 12:37