【问题标题】:Issue accessing MobileFirst adapters访问 MobileFirst 适配器时出现问题
【发布时间】:2015-12-11 15:26:49
【问题描述】:

我正在使用 MobileFirst CLI 7.1、Java 1.8.0_65(如果重要,在 Mac OS X 10.9.5 上)。我在当前环境中工作了大约一个月,但我开发的所有适配器突然出现问题,到目前为止,这些适配器一直在成功运行。

从浏览器进行测试时出现的初始错误。我认为这可能与 WL JavaScript 库使用在服务器上运行的适配器进行身份验证的方式有关(清除浏览器缓存通常可以解决此问题,但在这种情况下不会)。

[.../common/query] failure. state: 500, response: undefinedWL.Logger.__log @ worklight.js:5377
worklight.js:5377 Client registration failed with error: {"responseHeaders":{"$WSEP":"","Date":"Tue, 08 Dec 2015 14:07:51 GMT","Connection":"Close","Content-Type":"text/html;charset=UTF-8","X-Powered-By":"Servlet/3.0","Transfer-Encoding":"chunked","Content-Language":"en-...

当这不起作用时,我尝试从 CLI 测试适配器,结果出现错误

undefined:1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.
^
SyntaxError: Unexpected token <
    at Object.parse (native)
...

不是很有帮助,控制台日志中也没有真实信息(至少没有任何意义)

上周我正在编写一个 Java 适配器,所以我想我会尝试一下,看看我是否得到不同的响应(我还尝试创建一个新项目和空适配器,顺便说一句)。基本上从命令行进行的测试似乎有效(没有响应,但也没有错误)。我认为它不起作用(尽管我很怀疑),所以我打算使用 Chrome 插件(高级 REST 客户端插件)测试相同的适配器。实际上,我没有达到测试适配器的目的,因为获取身份验证令牌的 POST 失败(您发布以下 url /authorization/v1/testtoken 并且应该取回身份验证令牌)。我实际收到的是一大段 HTML。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
...
<div id="error"> Exception thrown by application class 'org.apache.wink.server.internal.RequestProcessor.logException:273'
</div>
<div id="code">
java.lang.NullPointerException: <br>
<div id="stack">at org.apache.wink.server.internal.RequestProcessor.logException(RequestProcessor.java:273)<br>at org.apache.wink.server.internal.RequestProcessor.handleRequestWithoutFaultBarrier(RequestProcessor.java:226)<br>at org.apache.wink.server.internal.RequestProcessor.handleRequest(RequestProcessor.java:154)<br>at org.apache.wink.server.internal.servlet.RestServlet.service(RestServlet.java:133)<br>at javax.servlet.http.HttpServlet.service(HttpServlet.java:668)<br>at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1285)<br>at [internal classes]<br>at **com.worklight.authorization.server.AuthorizationServerFilter.doFilter**(AuthorizationServerFilter.java:88)<br>at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:206)<br>at [internal classes]<br>at com.worklight.analytics.AnalyticsFilter.doFilter(AnalyticsFilter.java:124)<br>at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:206)<br>at [internal classes]<br>
</div>
</div>

在我看来,授权过滤器由于某种未知原因而失败。 我昨天确实尝试卸载并重新安装 MF CLI,但这个错误刚刚重新浮出水面。这是我唯一能想到再做的事情,但也许我错过了一些需要在卸载完成后手动删除的本地文件......? 上次我把 ~/.ibm 下的所有东西都删了很多

我刚刚在 developerworks 中发现了这篇文章,其中提到了与我所看到的类似的问题。

https://www.ibm.com/developerworks/community/forums/html/topic?id=ae0a1814-7ce3-49f5-b582-c9ecf16fa51a

这也是正确的原因是我正在玩一个 JavaAdapter,我打算用它来与后台 RESTful 服务交互。我遇到了问题,曾一度考虑过使用 Jersey 的想法。我想我曾至少将一个 Jersey jar 文件复制到项目的 server/lib 文件夹中,并且可能已将其推送到服务器。虽然我已经完成了这个操作,但再次卸载、删除 ~/.ibm 下的所有内容并重新安装后,jar 将不再存在。我仍然遇到同样的问题。

是否有可能卸载不会删除 liberty 配置文件或 WAS 配置并且这些 jars 会以某种方式持续存在?

【问题讨论】:

  • 如果有办法重现和调试它会有所帮助...
  • 另外,您是否与打开以下问题的同一个人合作?为什么不让他更新他的问题,它谈到了同样的问题? stackoverflow.com/questions/34139451/…
  • 您好 Idan,当然,我很感激能够重现该问题,但由于它似乎与我的环境有关,因此可能无法做到。自从我发布以来,我唯一发生的事情是,当我开始使用 Java 适配器时,我将一些 JAR 添加到 server/lib 文件夹中,这些 JAR 随后通过 git 推送/共享。我想这可能会导致这个问题,但我想通过重新安装 MF CLI 我会清理所有这些。根据这个猜测可能值得重试。
  • 哦,是的,你说得对,那篇文章是同事写的。我不会花一整天的时间将堆栈跟踪和其他调查复制并粘贴到电子邮件中并将其发送给他,以便他可以更新他的帖子。我不能在 Stack Overflow 上评论他的帖子,我也不能通过“回答”他的帖子来添加细节......所以新帖子似乎是最好的选择。
  • 您提到您将战争放在 server/lib 中。在构建期间,它从那里转到 /bin 文件夹中的 .war 文件。所以删除服务器没关系,你是不是把bin文件夹里的war删掉了,把server/lib里的文件删掉了?

标签: ibm-mobilefirst mobilefirst-adapters mobilefirst-cli


【解决方案1】:

事实证明,当前/最新版本的 MobileFirst CLI (20151130-1653) 存在问题。我备份到以前的版本 (20150913-2352),我的适配器又开始工作了 - 显然我在重新安装过程中清理了服务器和 tmp 文件。

我相信已经有不少人提出了同样的问题,并且它已在 IBM 内部作为 PMR 提出。

【讨论】:

  • 在 7.1.0.00.20151214-1903 版本中似乎仍然存在此问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多