IBM Worklight 6.1错误 - 用户身份不可用。

时间:2015-08-23 13:07:26

标签: java webview ibm-mobilefirst worklight-adapters

我们有一个应用程序可以打开应用内浏览器进行付款,我们会检查应用内浏览器中的网址更改,以关闭浏览器并调用方法。该方法依次调用适配器过程。但适配器开始抛出错误。除非打开应用程序内浏览器,否则适配器调用工作。

> [8/23/15 14:26:38:047 AST] 0000003f LoginContext  E
> com.worklight.core.auth.impl.LoginContext processRequest FWLSE0117E:
> Error code: 4, error description: AUTHENTICATION_ERROR, error message:
> An error occurred while performing authentication using loginModule
> StrongBLAHBLAH, User Identity Not available. [project
> BLAHBLAHMobile61] [project BLAHBLAHMobile61] [8/23/15 14:26:38:047
> AST] 0000003f servlet       E
> com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An
> exception was thrown by one of the service methods of the servlet
> [GadgetAPIServlet] in application
> [IBM_Worklight_Console_BLAHBLAHMobileTest]. Exception created :
> [com.worklight.server.auth.api.WorkLightAuthenticationException   at
> com.worklight.core.auth.impl.AuthenticationContext.checkAuthentication(AuthenticationContext.java:572)
>   at
> com.worklight.core.auth.impl.AuthenticationContext.processRealms(AuthenticationContext.java:454)
>   at
> com.worklight.core.auth.impl.AuthenticationContext.pushCurrentResource(AuthenticationContext.java:431)
>   at
> com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:75)
>   at
> com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedureInternal(DataAccessServiceImpl.java:389)
>   at
> com.worklight.integration.services.impl.DataAccessServiceImpl.invokeProcedure(DataAccessServiceImpl.java:112)
>   at
> com.worklight.gadgets.serving.handler.BackendQueryHandler.getContent(BackendQueryHandler.java:182)
>   at
> com.worklight.gadgets.serving.handler.BackendQueryHandler.doPost(BackendQueryHandler.java:73)
>   at
> com.worklight.gadgets.serving.GadgetAPIServlet.doGetOrPost(GadgetAPIServlet.java:141)
>   at
> com.worklight.gadgets.serving.GadgetAPIServlet.doPost(GadgetAPIServlet.java:103)
>   at javax.servlet.http.HttpServlet.service(HttpServlet.java:595)     at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:668)  at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1224)
>   at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
>   at
> com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
>   at
> com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
>   at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136)
>   at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97)
>   at
> com.worklight.core.auth.impl.AuthenticationFilter$1.execute(AuthenticationFilter.java:199)
>   at
> com.worklight.core.auth.impl.AuthenticationServiceBean.accessResource(AuthenticationServiceBean.java:76)
>   at
> com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:203)
>   at
> com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:191)
>   at
> com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
>   at
> com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:928)
>   at
> com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1025)
>   at
> com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87)
>   at
> com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:895)
>   at
> com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
>   at
> com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
>   at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:452)
>   at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:511)
>   at
> com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:305)
>   at
> com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:83)
>   at
> com.ibm.ws.ssl.channel.impl.SSLReadServiceContext$SSLReadCompletedCallback.complete(SSLReadServiceContext.java:1784)
>   at
> com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
>   at
> com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
>   at
> com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java)
>   at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java)     at
> com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)   at
> com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
>   at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)     at
> com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1690) ]

1 个答案:

答案 0 :(得分:0)

我会说这对于"失败"发生:

据我所知,应用内浏览器webview与应用程序本身在其中运行的webview是分开的,因此数据不会在两者之间共享。

也许更好的解决方案是不通过应用程序内浏览器来处理付款流程,而是像下面的教程中解释的那样,您可以使用Java移动数据。

https://developer.ibm.com/mobilefirstplatform/documentation/getting-started-7-1/foundation/advanced-topics/integrating-server-generated-pages-hybrid-applications/