IBM Application Center APK 上传失败

Posted

技术标签:

【中文标题】IBM Application Center APK 上传失败【英文标题】:IBM Application Center APK upload failed 【发布时间】:2015-08-17 04:25:05 【问题描述】:

我的 IBM Application Center 版本 7.0.0.00-20150729-1801

尝试将 App Center Client APK 文件上传到 App Center Console。它失败并出现错误 - FWLAC0000E: 检测到服务器错误。

[8/16/15 23:16:35:510 CDT] 00000129 UploadService 我文件上传 [8/16/15 23:16:52:661 CDT] 00000129 ApplicationSe E “id”:“223b252a-a3aa-443d-9472-49e413d4af1c”, "message": "FWLAC0000E: 检测到服务器错误。", “参数”:[ ], “产品版本”:“7.0.0.00-20150729-1801” com.ibm.puremeap.resources.exceptions.SystemException:实例“com.ibm.puremeap.jpa.entity.AclAppPrincipalEntity[id=unknown]”的字段“aclApp”包含空值;该字段的元数据指定空值是非法的。 在 com.ibm.puremeap.resources.data.impl.ApplicationHelper.createApplicationImpl(ApplicationHelper.java:1741) 在 com.ibm.puremeap.resources.data.impl.ApplicationHelper.createApplication(ApplicationHelper.java:1628) 在 com.ibm.puremeap.artifacts.Application.create(Application.java:497) 在 com.ibm.puremeap.services.ApplicationService.create(ApplicationService.java:154) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 在 java.lang.reflect.Method.invoke(Method.java:611) 在 org.apache.wink.server.internal.handlers.InvokeMethodHandler.handleRequest(InvokeMethodHandler.java:63) 在 org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:33) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest(CreateInvocationParametersHandler.java:54) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.handlers.AbstractHandler.handleRequest(AbstractHandler.java:34) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleResourceMethod(FindResourceMethodHandler.java:151) 在 org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:65) 在 org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceLocator(FindResourceMethodHandler.java:235) 在 org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:115) 在 org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleSubResourceLocator(FindResourceMethodHandler.java:235) 在 org.apache.wink.server.internal.handlers.FindResourceMethodHandler.handleRequest(FindResourceMethodHandler.java:115) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.handlers.FindRootResourceHandler.handleRequest(FindRootResourceHandler.java:95) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.handlers.HeadMethodHandler.handleRequest(HeadMethodHandler.java:53) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.handlers.OptionsMethodHandler.handleRequest(OptionsMethodHandler.java:46) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.handlers.SearchResultHandler.handleRequest(SearchResultHandler.java:33) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.log.ResourceInvocation.handleRequest(ResourceInvocation.java:92) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.internal.log.Requests.handleRequest(Requests.java:76) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:26) 在 org.apache.wink.server.handlers.RequestHandlersChain.handle(RequestHandlersChain.java:22) 在 org.apache.wink.server.handlers.AbstractHandlersChain.doChain(AbstractHandlersChain.java:75) 在 org.apache.wink.server.handlers.AbstractHandlersChain.run(AbstractHandlersChain.java:60) 在 org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:207) 在 org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154) 在 org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:124) 在 com.ibm.puremeap.services.RestServlet.service(RestServlet.java:56) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 在 com.ibm.puremeap.services.RestFilter.doFilter(RestFilter.java:60) 在 com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 在 com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:967) 在 com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1107) 在 com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 在 com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:939) 在 com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 在 com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) 在 com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) 在 com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 在 com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 在 com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 在 com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 在 com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 在 com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 在 com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 在 com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881) 原因:org.apache.openjpa.persistence.InvalidStateException:实例“com.ibm.puremeap.jpa.entity.AclAppPrincipalEntity[id=unknown]”的字段“aclApp”包含空值;该字段的元数据指定空值是非法的。 在 org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:567) 在 org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:505) 在 org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:3059) 在 org.apache.openjpa.kernel.SingleFieldManager.preFlushPC(SingleFieldManager.java:808) 在 org.apache.openjpa.kernel.SingleFieldManager.preFlushPCs(SingleFieldManager.java:762) 在 org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:656) 在 org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:589) 在 org.apache.openjpa.kernel.SingleFieldManager.preFlush(SingleFieldManager.java:505) 在 org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:3059) 在 org.apache.openjpa.kernel.PDirtyState.beforeFlush(PDirtyState.java:39) 在 org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1075) 在 org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2127) 在 org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2087) 在 org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1858) 在 org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:602) 在 org.apache.openjpa.kernel.StateManagerImpl.assignField(StateManagerImpl.java:689) 在 org.apache.openjpa.kernel.StateManagerImpl.beforeAccessField(StateManagerImpl.java:1696) 在 com.ibm.ws.persistence.kernel.WsJpaStateManagerImpl.beforeAccessField(WsJpaStateManagerImpl.java:109) 在 org.apache.openjpa.kernel.StateManagerImpl.accessingField(StateManagerImpl.java:1627) 在 com.ibm.puremeap.jpa.entity.AclAppPrincipalEntity.pcGetid(AclAppPrincipalEntity.java) 在 com.ibm.puremeap.jpa.entity.AclAppPrincipalEntity.equals(AclAppPrincipalEntity.java:201) 在 java.util.ArrayList.contains(ArrayList.java:309) 在 com.ibm.puremeap.jpa.entity.AclApplicationEntity.addPrincipal(AclApplicationEntity.java:253) 在 com.ibm.puremeap.jpa.entity.AclApplicationEntity.addAccessRightForPrincipal(AclApplicationEntity.java:195) 在 com.ibm.puremeap.resources.data.impl.ApplicationHelper.getUpdatedACLOnCreate(ApplicationHelper.java:648) 在 com.ibm.puremeap.resources.data.impl.ApplicationHelper.createApplicationImpl(ApplicationHelper.java:1734) ... 86 更多

【问题讨论】:

应用了所有需要的 32 位库 glibc.i686、glibc-devel.i686、libstdc++.i686、zlib-devel.i686、ncurses-devel.i686、libX11-devel.i686、libXrender.i686 , libXrandr.i686 并重新部署Application Center并配置android.aapt.dir 我按照下面的帖子将我的 Application Center 6.1.0.2 升级到 App Center 7.0 ***.com/questions/31992264/… 【参考方案1】:

日志显示这是一个数据库问题,可能是由 OpenJPA 引起的。我怀疑 Websphere 中使用了错误版本的 OpenJPA。这可以在日志中检测到,例如,如果您在日志中看到一条消息,例如

INFO [server.startup : 2] openjpa.Runtime - Starting OpenJPA 2.x

从 MobileFirst 7.0 及更早版本开始,正确的 OpenJPA 版本必须是 1.2.2,而不是 2.x(2.2.3 或类似版本)。

如果没有为 applicationcenter.war 设置 parentLast 类加载器策略,通常会发生此错误。有关 WAS 完整配置文件,请参阅 step 5 here。对于 WAS Liberty Profile,请参阅the element <classloader delegation="parentLast"> here.

【讨论】:

以上是关于IBM Application Center APK 上传失败的主要内容,如果未能解决你的问题,请参考以下文章

IBM Worklight 6.0 - 如何访问 Application Center 管理控制台

IBM Worklight 6.0 - 无法将应用程序发布到 Application Center?

在 IBM MobileFirst Application Center Console 中使用代理上传外部应用程序时出现问题

Worklight 6.0 - 修复 IBM App Center for iOS8 的步骤?

IBM Worklight 6.1 - iOS 6.1 上的 App Center 错误

无法使用 ibm-application-bnd.xml 将角色映射到组