Я использую 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 (плагин Advanced REST Client). На самом деле я не дошел до тестирования адаптера, потому что 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, в котором упоминается проблема, аналогичная той, которую я вижу.
Причина, по которой это также звучит правдоподобно, заключается в том, что я играл с JavaAdapter, который планировал использовать для взаимодействия с бэк-офисной службой RESTful. У меня были проблемы, и в какой-то момент я обдумывал идею использования Джерси. Я думаю, что в какой-то момент я скопировал по крайней мере один файл jar из Джерси в папку server/lib проекта и, возможно, отправил его на сервер. Сделав это, я ожидал, еще раз удалив, удалив все в ~/.ibm и переустановив, что банки больше не будут присутствовать. Я все еще получаю ту же проблему.
Возможно ли, что удаление не приводит к удалению профиля свободы или конфигурации WAS и что эти банки каким-то образом сохраняются?