使用 MobileFirst 7.1(7.1.0.00.20151130-1648) - Studio和服务器均使用相同版本。
将MobileFirst 7.1应用程序部署到WebSphere Full-Profile类似生产的测试服务器,并从MobileFirst中获取NullPointer。
我已多次尝试修改worklight.properties和authenticationConfig.xml,结果相同,包括设置mfp.session.independent = false。
我目前已将所有内容设置回现成的默认设置和相同的问题。目前,适配器已受到保护,并且无需对应用程序进行安全测试。
WAR,应用程序和适配器都可以正常部署,日志看起来很干净,直到您尝试从浏览器调用适配器或应用程序URL。
[1/21/16 9:52:08:420 EST] 000000a4 webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[GadgetAPIServlet]: java.lang.NullPointerException
at com.worklight.core.auth.impl.AuthenticationContext.isSessionIndependent(AuthenticationContext.java:1219)
at com.worklight.core.util.HttpSessionUtil.setLockOnSession(HttpSessionUtil.java:108)
at com.worklight.core.auth.impl.AuthenticationFilter.doFilter(AuthenticationFilter.java:136)
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195)
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967)
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107)
at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3923)
at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1006)
at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316)
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214)
at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113)
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175)
at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
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:1881)
查看MobileFirst源代码,我发现由于当前没有设置Project Local,因此未能获得Worklight配置实例。
使用MobileFirst Studio和Liberty Profile在本地进行各种配置时,一切正常。
非常感谢任何帮助确定我的应用程序设置中可能导致此行为的内容。
答案 0 :(得分:0)
问题的实际细节问题非常严重。相反,它只列出了尝试的内容。
唯一真正的线索就是这个
将MobileFirst 7.1应用程序部署到WebSphere Full-Profile 类似生产的测试服务器,并从MobileFirst中获取NullPointer。
而且:
WAR,应用程序和适配器都可以正常部署,日志看起来很干净,直到您尝试从浏览器调用适配器或应用程序URL 。
在7.1中,不支持与会话无关的浏览器环境(更好地称为"桌面浏览器"以及#34; Mobile Web")。移动环境支持它,浏览器环境则不支持它。如果你想在浏览器环境中进行测试,你必须改变服务器模式,但它不能在移动环境中工作......
另一件事是"类似生产"环境没有预览servlet。您无法在开发环境之外预览应用程序。要进行测试,您需要使用模拟器/仿真器或物理设备。
如果这不能解答您的问题,请使用完整步骤编辑您的问题以重现您的方案。
答案 1 :(得分:0)
这个问题已经解决了!他们的构建过程使用以前版本的MobileFirst中的旧版本覆盖生成的web.xml,因此预期的servlet未正确配置。